WooCommerce: E-Mail Adresse bestätigen

Veröffentlicht von Marco Betschart am

Im WooCommerce Checkout Prozess lässt sich ganz einfach ein zusätzliches Feld für die Validierung der eingegebenen E-Mail-Adresse hinzufügen:

billing_email_confirm

add_filter('woocommerce_checkout_fields',function($fields){
    $billing_email_confirm = array(
        'label'            => 'E-Mail-Adresse bestätigen',
        'placeholder'    => '',
        'required'        => true,
        'class'            => apply_filters('woocommerce_billing_email_confirm_field_class',array('form-row-first')),
        'clear'            => true,
        'validate'        => array('email'),
    );
    $billing_email_index = array_search('billing_email', array_keys($fields['billing']));
  
    if( $billing_email_index ){
        $fields['billing'] = array_slice($fields['billing'],0,$billing_email_index + 1,true) +
            array( 'billing_email_confirm' => $billing_email_confirm ) +
            array_slice($fields['billing'],$billing_email_index + 1,null,true);
    } else {
        $fields['billing']['billing_email_confirm'] = $billing_email_confirm;
    }

    return $fields;
});

add_filter('woocommerce_process_checkout_field_billing_email_confirm',function($email_confirm=''){
    global $woocommerce;
    $billing_email = $woocommerce->checkout->posted['billing_email'];

    if( strtolower($email_confirm) != strtolower($billing_email) ){
        $notice = '<strong>E-Mail-Adressen stimmen nicht überein</strong>';

        if ( version_compare( WC_VERSION, '2.3', '<' ) ) {
            $woocommerce->add_error($notice);
        } else {
            wc_add_notice($notice,'error');
        }
    }

    return $email_confirm;
});

add_filter('default_checkout_billing_email_confirm',function($value=null,$field='billing_email_confirm'){
    if( is_user_logged_in() ){
        global $current_user;
        $value = $current_user->user_email;
    }
    return $value;
},10,2);
Kategorien: Technologie

Marco Betschart

nerdpreneur out of conviction. lover of the never ending journey of exploration. self growth and tech enthusiast. ambitious rock climber and from time to time, adrenaline junkie.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.