Хук wp_new_user_notification_email
в WordPress позволяет разработчикам настраивать содержимое письма, отправляемого новому пользователю после его регистрации. Это полезно, если вы хотите изменить стандартный текст уведомления, добавить персонализированные сообщения или предоставить дополнительные инструкции для новых пользователей.
apply_filters( 'wp_new_user_notification_email', array $wp_new_user_notification_email, WP_User $user, string $blogname );
Параметры
$wp_new_user_notification_email
(array): Массив с данными, передаваемыми функцииwp_mail()
для отправки письма. Содержит ключи:to
(string): Электронная почта нового пользователя.subject
(string): Тема письма.message
(string): Текст письма.headers
(string): Заголовки письма.
$user
(WP_User): ОбъектWP_User
нового пользователя.$blogname
(string): Название сайта.
Пример 1: Добавление приветственного сообщения в письмо
Этот пример показывает, как добавить дополнительный текст в письмо, чтобы поприветствовать нового пользователя и дать ему краткую информацию о сайте.
add_filter( 'wp_new_user_notification_email', 'custom_welcome_message_email', 10, 3 );
function custom_welcome_message_email( $wp_new_user_notification_email, $user, $blogname ) {
$wp_new_user_notification_email['subject'] = 'Добро пожаловать на ' . $blogname;
$wp_new_user_notification_email['message'] .= "\n\nСпасибо за регистрацию! Если у вас возникнут вопросы, свяжитесь с нами.";
return $wp_new_user_notification_email;
}
Пример 2: Персонализированное письмо для пользователей с ролью «подписчик на прайс-лист»
Если на сайте есть особая роль (например, price_list_subscriber
), то письмо можно дополнить информацией о специальном доступе для таких пользователей.
add_filter( 'wp_new_user_notification_email', 'custom_email_for_price_list_subscribers', 10, 3 );
function custom_email_for_price_list_subscribers( $email_data, $user, $blogname ) {
if ( in_array( 'price_list_subscriber', $user->roles ) ) {
$email_data['subject'] = 'Доступ к прайс-листам на ' . $blogname;
$email_data['message'] = "Поздравляем! Вам предоставлен доступ к странице прайс-листов.\n";
$email_data['message'] .= "Перейдите по ссылке: " . home_url( '/price-list/' ) . "\n";
}
return $email_data;
}
Пример 3: Отправка письма на другой адрес
Этот пример отправляет письмо не только новому пользователю, но и дополнительному получателю, например, администратору.
add_filter( 'wp_new_user_notification_email', 'add_admin_copy_to_notification', 10, 3 );
function add_admin_copy_to_notification( $wp_new_user_notification_email, $user, $blogname ) {
$wp_new_user_notification_email['headers'] .= "Cc: admin@" . parse_url( home_url(), PHP_URL_HOST ) . "\r\n";
return $wp_new_user_notification_email;
}
Пример 4: Добавление временного пароля в письмо
Если вы хотите отправить новый временный пароль в письме, вы можете использовать этот пример. Пароль создается автоматически и добавляется в сообщение.
add_filter( 'wp_new_user_notification_email', 'include_temp_password_in_email', 10, 3 );
function include_temp_password_in_email( $email_data, $user, $blogname ) {
$temp_password = wp_generate_password( 12, false );
wp_set_password( $temp_password, $user->ID );
$email_data['message'] .= "\n\nВаш временный пароль: " . $temp_password;
$email_data['message'] .= "\nРекомендуем изменить его после первого входа.";
return $email_data;
}
Пример 5: Персонализированное письмо в зависимости от выбранного языка
Если ваш сайт поддерживает несколько языков, можно отправлять письмо на основе языка, выбранного пользователем при регистрации.
add_filter( 'wp_new_user_notification_email', 'send_language_specific_email', 10, 3 );
function send_language_specific_email( $email_data, $user, $blogname ) {
$language = get_user_meta( $user->ID, 'preferred_language', true );
if ( $language === 'fr' ) {
$email_data['subject'] = 'Bienvenue sur ' . $blogname;
$email_data['message'] = "Bonjour,\nMerci de vous être inscrit sur notre site!\n";
} elseif ( $language === 'es' ) {
$email_data['subject'] = 'Bienvenido a ' . $blogname;
$email_data['message'] = "Hola,\nGracias por registrarse en nuestro sitio!\n";
} else {
$email_data['subject'] = 'Welcome to ' . $blogname;
$email_data['message'] = "Hello,\nThank you for registering at our site!\n";
}
return $email_data;
}
Заключение
Хук wp_new_user_notification_email
предоставляет гибкие возможности для настройки писем новым пользователям.