Comment ajouter la vérification des e-mails d'inscription à WooCommerce

Publié: 2021-05-24

Ajouter la vérification de l'e-mail d'inscription à WooCommerce Voulez-vous ajouter une vérification personnalisée de l'e-mail d'inscription à WooCommerce ? Lisez la suite, car cet article vous fournira une solution simple.

Ce n'est pas un processus compliqué d'ajouter la vérification des e-mails d'inscription à WooCommerce. Cependant, vous aurez peut-être besoin de quelques compétences de base en codage pour y parvenir. Oui, vous pouvez utiliser un plugin, mais ils peuvent finir par gonfler votre site. C'est aussi un moyen sûr de faire de la personnalisation.

Nous vous recommandons également de créer un thème enfant. Cela garantira que vos modifications ne seront pas perdues lors d'une mise à jour.

Ajouter la vérification de l'e-mail d'inscription à WooCommerce

À la fin de cet article, vous pourrez ajouter la vérification des e-mails d'inscription à WooCommerce. Nous avons créé un extrait de code personnalisé pour y parvenir. Nous vous guiderons à travers toutes les étapes à suivre pour faciliter la mise en œuvre de cette solution par les débutants.

Allons droit au but.

Étapes pour ajouter la vérification des e-mails d'inscription à WooCommerce

Avant de continuer, n'oubliez pas de sauvegarder votre site. Cela vous aidera à revenir à la version précédente en cas de problème.

Voici les étapes simples que vous devez suivre :

  1. Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
  2. Dans le menu Dashboard, cliquez sur Appearance Menu > Theme Editor Menu . Lorsque la page de l'éditeur de thème est ouverte, recherchez le fichier de fonctions de thème où nous ajouterons la fonction qui ajoutera la fonctionnalité de numéro GTIN sur les produits dans WooCommerce.
  3. Ajoutez le code suivant au fichier php :
// this is just to prevent the user log in automatically after register

function wc_registration_redirect( $redirect_to ) {

 wp_logout();

 wp_redirect( '/sign-in/?q=');

 exit;

}

// when user login, we will check whether this guy email is verify

function wp_authenticate_user( $userdata ) {

 $isActivated = get_user_meta($userdata->ID, 'is_activated', true);

if ( !$isActivated ) {

 $userdata = new WP_Error(
'inkfool_confirmation_error',

__( '<strong>ERROR:</strong> Your account has to be activated before you can login. You can resend by clicking <a href="/sign-in/?u='.$userdata->ID.'">here</a>', 'inkfool' )

 );

 }

&return $userdata;

}

// when a user register we need to send them an email to verify their account

function my_user_register($user_id) {

 // get user data

$user_info = get_userdata($user_id);

 // create md5 code to verify later
$code = md5(time());

 // make it into a code to send it to user via email

 $string = array('id'=>$user_id, 'code'=>$code);

// create the activation code and activation status

update_user_meta($user_id, 'is_activated', 0);

 update_user_meta($user_id, 'activationcode', $code);
; // create the url

 $url = get_site_url(). '/sign-in/?p=' .base64_encode( serialize($string));

 // basically we will edit here to make this nicer

 $html = 'Please click the following links <br/><br/> <a href="'.$url.'">'.$url.'</a>';

// send an email out to user

 wc_mail($user_info->user_email, __('Please activate your account'), $html);

}

// we need this to handle all the getty hacks i made

function my_init(){

 // check whether we get the activation message

 if(isset($_GET['p'])){

 $data = unserialize(base64_decode($_GET['p']));

 $code = get_user_meta($data['id'], 'activationcode', true);

 // check whether the code given is the same as ours

if($code == $data['code']){
 // update the db on the activation process

update_user_meta($data['id'], 'is_activated', 1);

wc_add_notice( __( '<strong>Success:</strong> Your account has been activated! ', 'inkfool' )  );

}else{
 wc_add_notice( __( '<strong>Error:</strong> Activation fails, please contact our administrator. ', 'inkfool' )  );
}

 }

if(isset($_GET['q'])){

wc_add_notice( __( '<strong>Error:</strong> Your account has to be activated before you can login. Please check your email.', 'inkfool' ) );

 }

if(isset($_GET['u'])){

 my_user_register($_GET['u']);

wc_add_notice( __( '<strong>Succes:</strong> Your activation email has been resend. Please check your email.', 'inkfool' ) );

 }

}

// hooks handler

add_action( 'init', 'my_init' );

add_filter('woocommerce_registration_redirect', 'wc_registration_redirect');

add_filter('wp_authenticate_user', 'wp_authenticate_user',10,2);

add_action('user_register', 'my_user_register',10,2);

Conclusion

À présent, les clients de votre magasin doivent vérifier leurs e-mails après leur inscription pour pouvoir acheter des produits dans votre magasin. Ce code a été testé et fonctionne bien.

Si vous rencontrez un problème pour mettre en œuvre cette solution, vous devez laisser un professionnel insérer le code pour vous ou utiliser un plugin.

Nous espérons que cette solution vous a aidé à ajouter la vérification des e-mails d'inscription à WooCommerce.

Articles similaires

  1. Comment créer des pages de connexion et d'inscription séparées dans WooCommerce