disable Adress bearbeiten

  • Hallo Gemeinschaft

    ich möchte, dass der Kunde die Lieferadresse nicht mehr bearbeiten kann - dafür würde mir reichen, wenn ich den link "Bearbeiten" unsichtbar mache

    also wenn er in diesem Bereich ist
    domain/my-account/edit-address/

    könnt ihr mir sagen in welcher datei

    Einmal editiert, zuletzt von jhaustein (12. Mai 2022 um 14:21)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • ist vermutlich in der class-wc-form-handler
    [PLAIN]
    * Save and and update a billing or shipping address if the
    * form was submitted through the user account page.
    */
    public static function save_address() {
    global $wp;

    $nonce_value = wc_get_var( $_REQUEST['woocommerce-edit-address-nonce'], wc_get_var( $_REQUEST['_wpnonce'], '' ) ); // @codingStandardsIgnoreLine.

    if ( ! wp_verify_nonce( $nonce_value, 'woocommerce-edit_address' ) ) {
    return;
    }

    if ( empty( $_POST['action'] ) || 'edit_address' !== $_POST['action'] ) {
    return;
    }

    wc_nocache_headers();

    $user_id = get_current_user_id();

    if ( $user_id <= 0 ) {
    return;
    }

    $customer = new WC_Customer( $user_id );

    if ( ! $customer ) {
    return;
    }

    $load_address = isset( $wp->query_vars['edit-address'] ) ? wc_edit_address_i18n( sanitize_title( $wp->query_vars['edit-address'] ), true ) : 'billing';

    if ( ! isset( $_POST[ $load_address . '_country' ] ) ) {
    return;
    }

    $address = WC()->countries->get_address_fields( wc_clean( wp_unslash( $_POST[ $load_address . '_country' ] ) ), $load_address . '_' );

    foreach ( $address as $key => $field ) {
    if ( ! isset( $field['type'] ) ) {
    $field['type'] = 'text';
    }

    // Get Value.
    if ( 'checkbox' === $field['type'] ) {
    $value = (int) isset( $_POST[ $key ] );
    } else {
    $value = isset( $_POST[ $key ] ) ? wc_clean( wp_unslash( $_POST[ $key ] ) ) : '';
    }

    // Hook to allow modification of value.
    $value = apply_filters( 'woocommerce_process_myaccount_field_' . $key, $value );

    // Validation: Required fields.
    if ( ! empty( $field['required'] ) && empty( $value ) ) {
    /* translators: %s: Field name. */
    wc_add_notice( sprintf( __( '%s is a required field.', 'woocommerce' ), $field['label'] ), 'error', array( 'id' => $key ) );
    }

    if ( ! empty( $value ) ) {
    // Validation and formatting rules.
    if ( ! empty( $field['validate'] ) && is_array( $field['validate'] ) ) {
    foreach ( $field['validate'] as $rule ) {
    switch ( $rule ) {
    case 'postcode':
    $country = wc_clean( wp_unslash( $_POST[ $load_address . '_country' ] ) );
    $value = wc_format_postcode( $value, $country );

    if ( '' !== $value && ! WC_Validation::is_postcode( $value, $country ) ) {
    switch ( $country ) {
    case 'IE':
    $postcode_validation_notice = __( 'Please enter a valid Eircode.', 'woocommerce' );
    break;
    default:
    $postcode_validation_notice = __( 'Please enter a valid postcode / ZIP.', 'woocommerce' );
    }
    wc_add_notice( $postcode_validation_notice, 'error' );
    }
    break;
    case 'phone':
    if ( '' !== $value && ! WC_Validation::is_phone( $value ) ) {
    /* translators: %s: Phone number. */
    wc_add_notice( sprintf( __( '%s is not a valid phone number.', 'woocommerce' ), '<strong>' . $field['label'] . '</strong>' ), 'error' );
    }
    break;
    case 'email':
    $value = strtolower( $value );

    if ( ! is_email( $value ) ) {
    /* translators: %s: Email address. */
    wc_add_notice( sprintf( __( '%s is not a valid email address.', 'woocommerce' ), '<strong>' . $field['label'] . '</strong>' ), 'error' );
    }
    break;
    }
    }
    }
    }

    try {
    // Set prop in customer object.
    if ( is_callable( array( $customer, "set_$key" ) ) ) {
    $customer->{"set_$key"}( $value );
    } else {
    $customer->update_meta_data( $key, $value );
    }
    } catch ( WC_Data_Exception $e ) {
    // Set notices. Ignore invalid billing email, since is already validated.
    if ( 'customer_invalid_billing_email' !== $e->getErrorCode() ) {
    wc_add_notice( $e->getMessage(), 'error' );
    }
    }
    }

    /**
    * Hook: woocommerce_after_save_address_validation.
    *
    * Allow developers to add custom validation logic and throw an error to prevent save.
    *
    * Param int $user_id User ID being saved.
    * Param string $load_address Type of address e.g. billing or shipping.
    * Param array $address The address fields.
    * Param WC_Customer $customer The customer object being saved. @since 3.6.0
    */
    do_action( 'woocommerce_after_save_address_validation', $user_id, $load_address, $address, $customer );

    if ( 0 < wc_notice_count( 'error' ) ) {
    return;
    }

    $customer->save();

    wc_add_notice( __( 'Address changed successfully.', 'woocommerce' ) );

    do_action( 'woocommerce_customer_save_address', $user_id, $load_address );

    wp_safe_redirect( wc_get_endpoint_url( 'edit-address', '', wc_get_page_permalink( 'myaccount' ) ) );
    exit;
    }

    [/PLAIN]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!