Jak dodać weryfikację e-maila rejestracyjnego WooCommerce?
Opublikowany: 2021-05-24Czy chcesz dodać niestandardową weryfikację e-maila rejestracyjnego WooCommerce? Czytaj dalej, ponieważ ten post zapewni Ci proste rozwiązanie.
Dodanie weryfikacji e-maila rejestracyjnego WooCommerce nie jest skomplikowanym procesem. Aby to osiągnąć, możesz jednak potrzebować podstawowych umiejętności kodowania. Tak, możesz użyć wtyczki, ale może to spowodować rozdęcie witryny. Jest to również bezpieczny sposób dostosowywania.
Zalecamy również stworzenie motywu potomnego. Zapewni to, że Twoje zmiany nie zostaną utracone podczas aktualizacji.
Dodaj weryfikację e-maila rejestracyjnego WooCommerce
Pod koniec tego posta będziesz mógł dodać weryfikację e-maila rejestracyjnego WooCommerce. Aby to osiągnąć, stworzyliśmy niestandardowy fragment kodu. Przeprowadzimy Cię przez wszystkie kroki, które musisz wykonać, aby ułatwić początkującym wdrożenie tego rozwiązania.
Przejdźmy od razu.
Kroki, aby dodać weryfikację e-maila rejestracyjnego WooCommerce
Zanim przejdziesz dalej, pamiętaj o utworzeniu kopii zapasowej witryny. Pomoże Ci to powrócić do poprzedniej wersji, jeśli wystąpi problem.
Oto proste kroki, które musisz wykonać:
- Zaloguj się do swojej witryny WordPress i uzyskaj dostęp do pulpitu nawigacyjnego jako administrator.
- Z menu Dashboard kliknij menu Wygląd > Menu edytora motywów . Po otwarciu strony Theme Editor poszukaj pliku funkcji motywu, w którym dodamy funkcję, która doda funkcję numeru GTIN w produktach w WooCommerce.
- Dodaj następujący kod do pliku 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);
Wniosek
Do tej pory klienci w Twoim sklepie powinni zweryfikować swoje adresy e-mail po rejestracji, aby mogli kupować produkty w Twoim sklepie. Ten kod został przetestowany i działa dobrze.
Jeśli masz problem z wdrożeniem tego rozwiązania, powinieneś pozwolić profesjonalistom wstawić kod za Ciebie lub skorzystać z wtyczki.
Mamy nadzieję, że to rozwiązanie pomogło Ci dodać weryfikację e-maila rejestracyjnego WooCommerce.
Podobne artykuły
- Top 30+ najlepszych wtyczek WordPress do rezerwacji online
- Jak dodać listę życzeń w WooCommerce
- Jak utworzyć stronicowanie liczb w WordPress bez korzystania z wtyczki?
- Jak zmienić slogan motywu Storefront WooCommerce
- Jak dodać logowanie społecznościowe w logowaniu społecznościowym WooCommerce?
- Jak dodać przycisk Wyświetl koszyk w WooCommerce?
- Jak wybrać wszystko oprócz ostatniego dziecka w CSS »Przykład CSS Not Last Child
- Jak zainstalować Facebook Pixel na WooCommerce
- Jak wysłać e-mail o zmianie statusu w WooCommerce?
- Jak zmienić szablon wiadomości e-mail w WooCommerce?
- Jak sprawdzić, czy użytkownik jest zalogowany w WordPress
- Jak usunąć nieskategoryzowaną kategorię w WordPress WooCommerce
- Jak skonfigurować WooCommerce Kup jeden, a otrzymasz jeden
- Jak dodać kod SKU produktu w WooCommerce?
- Jak usunąć tytuł kategorii produktu WooCommerce
- Ponad 30 najlepszych wtyczek do wyszukiwania WordPress, aby poprawić wyszukiwanie w witrynie i SEO
- Jak utworzyć oddzielne strony logowania i rejestracji w WooCommerce?