Настройка пользовательского email администратора для регистрации новых пользователей
Я тщательно искал в интернете решение этой небольшой проблемы, но все результаты показывают только как настроить текст уведомления, а не сам email-адрес.
У меня в настройках WordPress указан email администратора abc@xyz.tld, что хорошо, но я хочу, чтобы все уведомления о регистрации новых пользователей приходили на другой email-адрес.
Например:
Когда регистрируется новый пользователь, email должен отправляться на def@hij.td
А уведомления об обновлении плагинов, тем и т.д. должны приходить ТОЛЬКО на abc@xyz.tld

Да, вы можете изменить email-адрес, используя функцию wp_mail. Вы можете узнать, как это сделать, здесь: http://www.butlerblog.com/2011/07/14/changing-the-wp_mail-from-address-with-a-plugin/
Используйте этот плагин для управления пользователями — он поддерживает указание email-адреса при регистрации новых пользователей: https://wordpress.org/plugins/wp-members/
Добавьте этот код в файл functions.php вашей темы:
function so174837_registration_email_alert( $user_id ) {
$user = get_userdata( $user_id );
$email = $user->user_email;
$message = $email . ' зарегистрировался на вашем сайте.';
wp_mail( 'youremail@example.com', 'Новая регистрация пользователя', $message );
}
add_action('user_register', 'so174837_registration_email_alert');

Привет, Кришна,
Спасибо за быстрый ответ. Ты предлагаешь мне установить плагин, а также твой скрипт? Или вместо плагина?

Я не устанавливал плагин и просто использовал фрагмент кода, который ты предоставил, и это, кажется, работает идеально.

что нужно вставить в раздел strip_tags($_POST['user_login']) ??

Я наткнулся на этот пост во время поиска в Google по конкретному вопросу, связанному с email. Забавно, что в опубликованном ответе упоминается один из моих постов в блоге и мой плагин. Это довольно круто — за исключением того, что в данном случае это не совсем отвечает на вопрос автора.
Вопрос заключался в том, что все уведомления для администратора должны отправляться на указанный email-адрес, КРОМЕ одного — уведомления о новом пользователе.
Мой подход к решению этой задачи (при условии, что используется нативная регистрация в WP) — использовать фильтр для wp_mail() (который, кстати, имеет фильтр в конце всего процесса).
Я бы использовал этот фильтр для проверки содержимого сообщения и, если это email, отправляемый для уведомления о новом пользователе, изменил бы адрес получателя через фильтр.
В этом примере проверяется тема письма на наличие строки 'New User Registration', которая является частью стандартной темы email-уведомления администратора в WP. Если условие выполняется, то адрес получателя изменяется на желаемый. В остальных случаях письма проходят через фильтр без изменений.
add_filter( 'wp_mail', 'my_wp_mail_filter' );
function my_wp_mail_filter( $args ) {
// Проверяем тему письма на наличие известной строки из уведомления.
if ( strpos( $args['subject'], 'New User Registration' ) ) {
// Это письмо-уведомление, поэтому меняем адрес получателя.
$args['to'] = 'def@hij.td';
}
return $args;
}
