Вопрос или проблема
Удалить проверку электронной почты при регистрации нового пользователя
Пожалуйста, обратите внимание, что я не публикую этот вопрос, не сделав поискового запроса в Google, но проблема в том, что каждый результат, который я нашел, либо касается BuddyPress, либо WP Multisite. У меня установка WP Single, где я использую Easy Digital Download, и для покупки чего-либо пользователю необходимо сначала зарегистрироваться.
Но проблема в том, что их аккаунт не активируется после регистрации. Если они посещают панель управления клиентом, там будет написано, что “Ваш аккаунт еще не подтвержден, проверьте свою электронную почту и подтвердите”. Это действительно расстраивает большинство моих клиентов, так как сейчас у людей так много дел, и у них нет времени на такие вещи. После регистрации пользователь получает письмо, похожее на это – http://puu.sh/kv9fv/9b63ea34f6.jpg
Итак, что я хочу спросить здесь: существует ли способ, с помощью которого я мог бы убрать этот шаг, чтобы аккаунты активировались сразу после регистрации? Нет необходимости в подтверждении электронной почты. Это все, что я хотел бы знать.
Надеюсь на скорый ответ.
Да, вы можете написать свою собственную регистрацию пользователя, создать форму, которая получает данные пользователя, и использовать wp_create_user
для её создания.
Тем не менее, я думаю, что подтверждение электронной почты еще более важно на сайтах электронной торговли, но если вы готовы отказаться от преимуществ, которые это дает вам и пользователям, то почему бы не обойти всю регистрацию пользователя?
Другой вариант — использовать поставщика SSO, такого как Facebook или Google, чтобы ускорить процесс создания пользователя (вы в основном полагаетесь на них для обеспечения текущего адреса электронной почты пользователя).
add_action( 'user_profile_update_errors', 'gowp_remove_new_user_email_error', 10, 3 );
function gowp_remove_new_user_email_error( $errors, $update, $user ) {
unset( $errors->errors['empty_email'] );
}
Ответ или решение
Чтобы отключить верификацию электронной почты для новых пользователей в вашей установке WordPress, вы можете использовать несколько подходов. Ниже приведен подробный план действий.
1. Убедитесь, что верификация электронной почты отключена в настройках
Сначала проверьте настройки вашего плагина Easy Digital Downloads (EDD) или другого используемого вами плагина для регистрации пользователей. Если там есть опция, касающаяся верификации электронной почты, отключите ее.
2. Использование функции wp_create_user
для регистрации пользователей
Если вы хотите полностью контролировать процесс регистрации без верификации, вам нужно создать собственную функцию, которая будет использовать wp_create_user
. Это даст вам возможность сразу активировать учетные записи пользователей.
3. Пример кода
Вот пример кода, который можно добавить в файл functions.php
вашей темы. Этот код отключит верификацию электронной почты для новых пользователей:
function custom_user_registration($username, $password, $email) {
$userdata = array(
'user_login' => $username,
'user_pass' => $password,
'user_email' => $email,
'role' => 'subscriber' // Или любую другую роль, которую вы хотите назначить
);
// Создаем нового пользователя
$user_id = wp_insert_user($userdata);
// Проверка на наличие ошибок
if (!is_wp_error($user_id)) {
// Пользователь успешно создан, можно выполнить дополнительные действия
// Например, отправить приветственное письмо
}
}
// Пример использования функции
if (isset($_POST['register'])) {
custom_user_registration($_POST['username'], $_POST['password'], $_POST['email']);
}
Обратите внимание, что данный код является базовым примером. Вам нужно будет создать соответствующую HTML-форму для регистрации и обработать данные формы.
4. Устранение ошибок валидации
Если вы увидите ошибки, связанные с верификацией электронной почты при использовании стандартной функции регистрации, вы можете добавить следующее:
add_action('user_profile_update_errors', 'disable_email_verification_error', 10, 3);
function disable_email_verification_error($errors, $update, $user) {
// Удаляем ошибку, связанную с отсутствием верификации электронной почты
unset($errors->errors['empty_email']);
}
5. Рассмотрите использование SSO
Рассмотрите возможность интеграции одноразовой аутентификации (Single Sign-On) через такие службы, как Facebook или Google. Это не только ускорит процесс регистрации, но и повысит уровень безопасности.
Заключение
Хотя отключение верификации электронной почты может улучшить удобство пользователей, имейте в виду, что это может повысить риск создания мошеннических учетных записей. Рекомендуется тщательно взвесить все «за» и «против» данного подхода, особенно в условиях электронной коммерции.