Как добавить подтверждение электронной почты для регистрации WooCommerce
Опубликовано: 2021-05-24Хотите добавить собственное подтверждение электронной почты при регистрации WooCommerce? Читайте дальше, так как этот пост предоставит вам простое решение.
Это не сложный процесс добавления подтверждения электронной почты при регистрации WooCommerce. Однако для этого вам могут понадобиться некоторые базовые навыки кодирования. Да, вы можете использовать плагин, но он может раздуть ваш сайт. Это также безопасный способ настройки.
Мы также рекомендуем создать дочернюю тему. Это гарантирует, что ваши изменения не будут потеряны во время обновления.
Добавить подтверждение регистрации по электронной почте WooCommerce
К концу этого поста вы сможете добавить подтверждение регистрации по электронной почте WooCommerce. Для этого мы создали собственный фрагмент кода. Мы проведем вас через все шаги, которые необходимо выполнить, чтобы новичкам было проще реализовать это решение.
Давайте приступим к делу.
Шаги по добавлению подтверждения электронной почты для регистрации WooCommerce
Прежде чем продолжить, не забудьте сделать резервную копию вашего сайта. Это поможет вам вернуться к предыдущей версии, если возникнет проблема.
Вот простые шаги, которые вам необходимо выполнить:
- Войдите на свой сайт WordPress и получите доступ к панели инструментов в качестве пользователя-администратора.
- В меню «Панель инструментов» нажмите « Меню внешнего вида» > «Меню редактора тем». Когда страница редактора темы открыта, найдите файл функций темы, в который мы добавим функцию, которая добавит функциональность номера GTIN для продуктов в WooCommerce.
- Добавьте следующий код в файл 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);
Вывод
К настоящему времени покупатели в вашем магазине должны подтвердить свою электронную почту после регистрации, чтобы они могли покупать товары в вашем магазине. Этот код был протестирован и работает хорошо.
Если у вас возникли проблемы с внедрением этого решения, вы должны позволить профессионалу вставить код для вас или использовать плагин.
Мы надеемся, что это решение помогло вам добавить подтверждение электронной почты при регистрации WooCommerce.
Похожие статьи
- Топ 30+ лучших плагинов бронирования WordPress для онлайн-бронирования
- Как добавить список желаний в WooCommerce
- Как создать нумерацию страниц в WordPress без использования плагина
- Как изменить слоган темы витрины WooCommerce
- Как добавить социальный вход в WooCommerce Социальный вход
- Как добавить кнопку просмотра корзины в WooCommerce
- Как выбрать все, кроме последнего дочернего элемента в CSS » Пример CSS Not Last Child
- Как установить пиксель Facebook на WooCommerce
- Как отправить электронное письмо при изменении статуса в WooCommerce
- Как изменить шаблон электронной почты в WooCommerce
- Как проверить, вошел ли пользователь в WordPress
- Как удалить категорию без категории в WordPress WooCommerce
- Как настроить WooCommerce «Купи один, получи один»
- Как добавить артикул товара в WooCommerce
- Как удалить название категории продукта WooCommerce
- 30+ лучших поисковых плагинов WordPress для улучшения поиска и SEO на вашем сайте
- Как создать отдельные страницы входа и регистрации в WooCommerce