Cum să adăugați verificarea e-mailului de înregistrare WooCommerce

Publicat: 2021-05-24

Adăugați verificarea e-mailului de înregistrare WooCommerce Doriți să adăugați o verificare personalizată a e-mailului de înregistrare WooCommerce? Citiți mai departe, deoarece această postare vă va oferi o soluție simplă.

Nu este un proces complicat să adăugați verificarea e-mailului de înregistrare WooCommerce. Cu toate acestea, este posibil să aveți nevoie de câteva abilități de codare de bază pentru a realiza acest lucru. Da, puteți folosi un plugin, dar s-ar putea să vă umfle site-ul. Acesta este, de asemenea, o modalitate sigură de personalizare.

De asemenea, vă recomandăm să creați o temă pentru copii. Acest lucru vă va asigura că modificările dvs. nu sunt pierdute în timpul unei actualizări.

Adăugați verificarea e-mailului de înregistrare WooCommerce

Până la sfârșitul acestei postări, veți putea adăuga verificarea e-mailului de înregistrare WooCommerce. Am creat un fragment de cod personalizat pentru a realiza acest lucru. Vă vom ghida prin toți pașii pe care trebuie să-i urmați pentru a facilita implementarea acestei soluții pentru începători.

Să intrăm direct în asta.

Pași pentru a adăuga verificarea e-mailului de înregistrare WooCommerce

Înainte de a continua, nu uitați să faceți o copie de rezervă a site-ului dvs. Acest lucru vă va ajuta să reveniți la versiunea anterioară dacă apare o problemă.

Iată pașii simpli pe care trebuie să-i urmezi:

  1. Conectați-vă la site-ul dvs. WordPress și accesați tabloul de bord ca utilizator administrator.
  2. Din meniul Tablou de bord, faceți clic pe Meniu Aspect > Meniu Editor de teme . Când pagina Editor de teme este deschisă, căutați fișierul cu funcțiile temei unde vom adăuga funcția care va adăuga funcționalitatea Număr GTIN pe Produse în WooCommerce.
  3. Adăugați următorul cod în fișierul 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);

Concluzie

Până acum, clienții din magazinul dvs. ar trebui să își verifice e-mailurile după înregistrare pentru ca aceștia să cumpere produse din magazinul dvs. Acest cod a fost testat și funcționează bine.

Dacă aveți o problemă la implementarea acestei soluții, ar trebui să lăsați un profesionist să introducă codul pentru dvs. sau să utilizați un plugin.

Sperăm că această soluție v-a ajutat să adăugați verificarea e-mailului de înregistrare WooCommerce.

Articole similare

  1. Cum se creează pagini separate de autentificare și înregistrare în WooCommerce