Ajouter le champ « Confirmer l'e-mail » à la caisse WooCommerce – Pas de plugin

Partager cette publication:

Les extraits WooCommerce suivants vous permettront de :

  • Ajouter un champ de confirmation d'e-mail supplémentaire à la caisse woocommerce
  • Vérifiez l'e-mail saisi par rapport à l'e-mail de facturation saisi
  • Afficher un avertissement et empêcher le paiement si les deux ne correspondent pas
  • Masquer ce champ si l'utilisateur est connecté

Pourquoi ajouter un email de confirmation déposé à la caisse WooCommerce ?

J'ai dirigé le Fermes de pâturages verts site Web depuis de nombreuses années, et vous seriez étonné du nombre de personnes qui saisissent mal des informations lors du paiement !

Un pourcentage important fait des erreurs dans leurs adresses e-mail, ce qui signifie que :

  1. Ils ne reçoivent pas leur e-mail de confirmation ni les détails d'expédition
  2. Impossible de se reconnecter à leur compte pour vérifier les détails
  3. Ne recevez aucune communication importante par e-mail concernant leur commande

Ces facteurs peuvent amener le client à croire qu'il n'a pas passé de commande ou qu'il a été fraudé.

Cela peut également rendre impossible la possibilité de contacter les clients en cas de problème : plusieurs clients ont saisi leur adresse e-mail, leur numéro de téléphone et leur adresse de manière incorrecte !

Comment ajouter un champ « Confirmer l'e-mail » à la caisse WooCommerce sans plugin

Important

Si vous n'êtes pas familier avec les extraits, consultez mon guide du débutant sur WordPress Hooks.

Un coup de chapeau à Bloomeur d'affaires où j'ai trouvé pour la première fois un extrait pour implémenter le champ de confirmation supplémentaire par e-mail.

Bien que l'extrait d'origine ait fonctionné, j'ai également constaté qu'il présentait quelques problèmes. Je l'ai donc révisé et apporté quelques améliorations petites mais significatives telles que :

  • L'extrait d'origine affiche les champs en permanence, obligeant les utilisateurs connectés à répéter leur e-mail deux fois à chaque commande, ce qui est inutile et peu pratique. Le nouvel extrait masque les deux champs de courrier électronique pour les utilisateurs connectés.
  • L'extrait d'origine ne définissait pas le nouveau type de champ sur « E-mail » et était sensible à la casse. Par défaut, l'e-mail de facturation n'était pas en majuscule, alors que le deuxième champ l'était. Cela a conduit de nombreuses personnes à échouer la validation et à ne pas comprendre pourquoi. J'ai ajouté 'type' => 'email' pour empêcher la mise en majuscule automatique et j'ai rendu la comparaison des e-mails non sensible à la casse pour faire bonne mesure.
/**
* @snippet       Add "Confirm Email Address" Field @ WooCommerce Checkout
* @author        Simon Whyatt
* @testedwith    WooCommerce 8
* @community     https://woosimon.com/
*/

// Modify email fields at checkout
add_filter( 'woocommerce_checkout_fields' , 'woosimon_customize_checkout_fields' );
   
function woosimon_customize_checkout_fields( $fields ) {
    if ( is_user_logged_in() ) {
        // Get the current user's data
        $current_user = wp_get_current_user();

        // Prefil and hide billing email:
        $fields['billing']['billing_email']['type'] = 'hidden';
        $fields['billing']['billing_email']['default'] = $current_user->user_email;
		$fields['billing']['billing_email']['label'] = '';

    } else {
        // For non-logged in users, adjust email field and add verification field
        $fields['billing']['billing_email']['class'] = array( 'form-row-first' );
        $fields['billing']['billing_em_ver'] = array(
            'label' => 'Confirm Email Address',
            'required' => true,
            'class' => array( 'form-row-last' ),
            'clear' => true,
            'priority' => 100,
			'type' => 'email',
        );
    }
  
    return $fields;
}
  
// ---------------------------------
// Generate error message if field values are different
  
add_action('woocommerce_checkout_process', 'woosimon_matching_email_addresses');
  
function woosimon_matching_email_addresses() {
	if ( !is_user_logged_in() ) {
		$email1 = strtolower($_POST['billing_email']);
		$email2 = strtolower($_POST['billing_em_ver']);
		if ( $email2 !== $email1 ) {
			wc_add_notice( 'Your email addresses do not match - please double check for errors', 'error' );
		}
	}
}

Et c'est tout!

N'oubliez pas de toujours vérifier soigneusement votre site Web après avoir ajouté un extrait de code et essayez de passer des commandes tests en tant que client connecté, invité et nouveau client pour vous assurer que tout fonctionne comme prévu.

💡 Obtenez mon guide de référencement GRATUIT dès aujourd'hui !

Inscrivez-vous à ma liste de diffusion et recevez un exemplaire gratuit de mon ebook « Les 5 meilleurs conseils SEO pour rédiger des articles et des pages WordPress »

Nous ne spammons pas ! En savoir plus dans notre politique de confidentialité

L'article Ajouter le champ « Confirmer l'e-mail » à la caisse WooCommerce – Pas de plugin apparu pour la première fois sur woosimon.com

Partager cette publication:

Faire défiler vers le haut