Настройка пользовательского email администратора для регистрации новых пользователей

14 янв. 2015 г., 16:27:43
Просмотры: 29.5K
Голосов: 5

Я тщательно искал в интернете решение этой небольшой проблемы, но все результаты показывают только как настроить текст уведомления, а не сам email-адрес.

У меня в настройках WordPress указан email администратора abc@xyz.tld, что хорошо, но я хочу, чтобы все уведомления о регистрации новых пользователей приходили на другой email-адрес.

Например:

Когда регистрируется новый пользователь, email должен отправляться на def@hij.td

А уведомления об обновлении плагинов, тем и т.д. должны приходить ТОЛЬКО на abc@xyz.tld

0
Все ответы на вопрос 2
6

Да, вы можете изменить 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');  
14 янв. 2015 г. 16:56:08
Комментарии

Привет, Кришна,

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

David Pearce David Pearce
14 янв. 2015 г. 17:00:02

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

David Pearce David Pearce
14 янв. 2015 г. 17:05:08

Отлично, рад это слышать.

krishna krishna
14 янв. 2015 г. 17:06:54

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

Mayur Devmurari Mayur Devmurari
27 нояб. 2015 г. 12:51:33

я не могу получить email и имя пользователя там ..

Mayur Devmurari Mayur Devmurari
27 нояб. 2015 г. 12:52:34

Отлично, всё работает ....

Mayur Devmurari Mayur Devmurari
27 нояб. 2015 г. 13:32:13
Показать остальные 1 комментариев
0

Я наткнулся на этот пост во время поиска в 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;
}
13 февр. 2017 г. 22:39:37