Хук register_new_user
в WordPress позволяет разработчикам выполнять определённые действия сразу после регистрации нового пользователя. Он срабатывает в конце функции register_new_user()
, после того как все операции по регистрации завершены. Это полезный инструмент для настройки различных уведомлений, автоматизации или дополнительной обработки информации о пользователе.
do_action( 'register_new_user', int $user_id );
Параметры
- $user_id (int) — ID нового зарегистрированного пользователя.
Применение
Чтобы подключиться к этому событию, используйте функцию add_action()
и передайте ей обработчик, который будет выполнять необходимые действия после регистрации пользователя.
add_action( 'register_new_user', 'custom_action_after_user_registration' );
/**
* Кастомная функция для обработки действия после регистрации пользователя.
*
* @param int $user_id ID зарегистрированного пользователя.
* @return void
*/
function custom_action_after_user_registration( $user_id ) {
// Ваши действия после регистрации
}
Пример 1: Отмена уведомлений для администратора при регистрации пользователя
По умолчанию WordPress отправляет уведомления о регистрации как администратору, так и новому пользователю. Если необходимо отключить уведомление для администратора, оставив только письмо пользователю, используйте следующий код:
// Убираем уведомления для администратора
remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
// Оставляем уведомление только для пользователя
add_action( 'register_new_user', 'custom_user_notification' );
function custom_user_notification( $user_id ) {
wp_new_user_notification( $user_id, null, 'user' );
}
Пример 2: Автоматическое присвоение роли после регистрации
Если при регистрации пользователю необходимо автоматически назначить определённую роль, можно добавить это действие в обработчик хука:
add_action( 'register_new_user', 'assign_custom_role_to_new_user' );
function assign_custom_role_to_new_user( $user_id ) {
$user = new WP_User( $user_id );
$user->set_role( 'subscriber' ); // Задаём роль "подписчик"
}
Пример 3: Запись логов о регистрации пользователей
Для аналитики или мониторинга регистрации можно записывать данные о новом пользователе в лог:
add_action( 'register_new_user', 'log_new_user_registration' );
function log_new_user_registration( $user_id ) {
$user_info = get_userdata( $user_id );
$log_entry = "Новый пользователь зарегистрирован: {$user_info->user_login} (ID: {$user_id})";
// Запись в файл лога
error_log( $log_entry );
}
Пример 4: Перенаправление на специальную страницу после регистрации
Если требуется перенаправить пользователя на определённую страницу после успешной регистрации, можно использовать следующий код. Это актуально для улучшения пользовательского опыта, например, перенаправление на страницу приветствия или заполнения профиля.
add_action( 'register_new_user', 'redirect_after_user_registration' );
function redirect_after_user_registration( $user_id ) {
wp_redirect( home_url( '/welcome' ) );
exit;
}
Пример 5: Отправка приветственного сообщения по электронной почте
Хук register_new_user
можно использовать для отправки индивидуального приветственного сообщения новому пользователю:
add_action( 'register_new_user', 'send_custom_welcome_email' );
function send_custom_welcome_email( $user_id ) {
$user_info = get_userdata( $user_id );
$to = $user_info->user_email;
$subject = 'Добро пожаловать на наш сайт!';
$message = 'Привет, ' . $user_info->display_name . "! Мы рады, что вы с нами!";
wp_mail( $to, $subject, $message );
}
Заключение
Хук register_new_user
в WordPress — это мощный инструмент для кастомизации процесса регистрации. С его помощью можно реализовать автоматические уведомления, перенаправления, изменение ролей и другие действия, которые помогают настроить процесс регистрации под уникальные требования сайта.