Как изменить регистрационное письмо по умолчанию? (плагин и /или не-плагин)

После регистрации нового пользователя WP отправляет электронное письмо с логином /паролем и ссылкой на страницу входа.

Есть ли способ изменить этот шаблон электронной почты defaut? Я также хотел бы изменить тему и отправителя.

Изменить: для всех, кого интересует, здесь является плагином.

49 голосов | спросил mike23 21 PMpThu, 21 Apr 2011 14:24:09 +040024Thursday 2011, 14:24:09

3 ответа


59

новый адрес электронной почты пользователя отправляется с использованием функции wp_new_user_notification (), которая является подключаемой, что позволяет ее перезаписать:

//Переопределить функцию уведомления пользователя
if (! function_exists ('wp_new_user_notification')) {
    функция wp_new_user_notification ($ user_id, $ plaintext_pass = '') {
        $ user = новый WP_User ($ user_id);

        $ user_login = stripslashes ($ user-> user_login);
        $ user_email = stripslashes ($ user-> user_email);

        $ message = sprintf (__ ('Регистрация нового пользователя в вашем блоге% s:'), get_option ('blogname')). "\ Г \ п \ г \ п";
        $ message. = sprintf (__ ('Username:% s'), $ user_login). "\ Г \ п \ г \ п";
        $ message. = sprintf (__ ('E-mail:% s'), $ user_email). "\ Г \ п";

        @wp_mail (get_option ('admin_email'), sprintf (__ ('[% s] Регистрация нового пользователя'), get_option ('blogname')), $ message);

        if (empty ($ plaintext_pass))
            вернуть;

        $ message = __ ('Привет,'). "\ Г \ п \ г \ п";
        $ message. = sprintf (__ («Добро пожаловать в% s! Вот как войти в систему:»), get_option ('blogname')). "\ Г \ п \ г \ п";
        $ message. = wp_login_url (). "\ Г \ п";
        $ message. = sprintf (__ ('Username:% s'), $ user_login). "\ Г \ п";
        $ message. = sprintf (__ ('Пароль:% s'), $ plaintext_pass). "\ Г \ п \ г \ п";
        $ message. = sprintf (__ («Если у вас возникли проблемы, свяжитесь со мной по адресу% s.»), get_option ('admin_email')). "\ Г \ п \ г \ п";
        $ message. = __ ('Adios!');

        wp_mail ($ user_email, sprintf (__ ('[% s] Ваше имя пользователя и пароль'), get_option ('blogname')), $ message);

    }
}
ответил Bainternet 21 PMpThu, 21 Apr 2011 17:15:39 +040015Thursday 2011, 17:15:39
16

В течение 2018 и последующих пользователей:

Так как WordPress 4.9.0 есть новые фильтры, которые вы можете использовать для этого (больше нет необходимости в плагине):

Пример использования электронной почты, отправленной администратору (вы можете вставить это в functions.php темы ):

add_filter ('wp_new_user_notification_email_admin', 'custom_wp_new_user_notification_email', 10, 3);

function custom_wp_new_user_notification_email ($ wp_new_user_notification_email, $ user, $ blogname) {
    $ wp_new_user_notification_email ['subject'] = sprintf ('[% s] Зарегистрирован новый пользователь% s.', $ blogname, $ user-> user_login);
    $ wp_new_user_notification_email ['message'] = sprintf ("% s (% s) зарегистрировано в вашем блоге% s.", $ user-> user_login, $ user-> user_email, $ blogname);
    return $ wp_new_user_notification_email;
}
ответил Edu Wass 3 Jpm1000000pmWed, 03 Jan 2018 14:54:38 +030018 2018, 14:54:38
3

Это не будет работать на functions.php, вам нужно поместить этот код внутри плагина.

Если вы сейчас не используете плагин для этого, просто используйте это ссылка

не забудьте взять код обновления этой функциональной формы здесь

ответил Erez Lieberman 17 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 17 Sep 2015 16:45:29 +0300 2015, 16:45:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132