Как изменить шаблон email для нового пользователя

6 февр. 2015 г., 16:59:48
Просмотры: 59.1K
Голосов: 11

Когда я добавляю нового клиента, письмо отправляется новому пользователю в таком формате:

От: WordPress [wordpress@siteurl.com]
Тема: [название сайта] Ваше имя пользователя и пароль
Сообщение:
         имя пользователя: user
         Пароль: password
         siteurl.com/wp-login.php

Теперь я хочу изменить этот формат следующим образом:

От: Название Моего Сайта [info@siteurl.com]
Тема: siteurl.com аккаунт клиента активирован
Сообщение:
       Ваш аккаунт клиента был активирован.

       Ваши учетные данные для входа:

       Имя пользователя: email пользователя
       Пароль: пароль

       Спасибо,
       abcd

Я пробовал использовать этот ответ, но он не работает.

Как я могу это сделать?

0
Все ответы на вопрос 3
0
21

Для пользователей с 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;
}
2 янв. 2018 г. 21:30:59
0

Письмо с уведомлением о новом пользователе создается и отправляется функцией wp_new_user_notification(), которая находится в файле wp-includes/plugable.php.

В этой функции нет фильтров (хуков), которые позволили бы вам изменять содержимое письма, однако вы можете переопределить любую "pluggable" функцию с помощью плагина.

Примечание - Переопределять "pluggable" функции можно только из плагина, но не из темы.

Подробнее о "pluggable" функциях и полный их список можно найти здесь - http://codex.wordpress.org/Pluggable_Functions

Этот код создаст плагин, который будет использоваться вместо функции из wp-includes/plugable.php (сохраните его в отдельном файле в wp-content/plugins/).

Я не настраивал его специально для вас, но это поможет вам начать работу.

<?php
/**
 * Plugin Name: Кастомное письмо уведомления о новом пользователе
 * Description: Переопределяет "pluggable" функцию 'wp_new_user_notification()' для отправки кастомного письма
 * Author: David Gard
 * Version: 1.0
 */

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Pluggable - Отправка учетных данных новому пользователю
 *
 * Уведомление о регистрации нового пользователя также отправляется на email администратора.
 *
 * @since 2.0.0
 *
 * @param int    $user_id        ID пользователя.
 * @param string $plaintext_pass Опционально. Пароль пользователя в открытом виде. По умолчанию пустая строка.
 */
function wp_new_user_notification($user_id, $plaintext_pass = ''){

    $user = get_userdata($user_id);

    // Опция blogname экранируется с помощью esc_html при сохранении в базу данных в sanitize_option
    // нам нужно вернуть оригинальное значение для использования в тексте email.
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

    $message  = sprintf(__('Новая регистрация пользователя на вашем сайте %s:'), $blogname) . "\r\n\r\n";
    $message .= sprintf(__('Логин: %s'), $user->user_login) . "\r\n\r\n";
    $message .= sprintf(__('Email: %s'), $user->user_email) . "\r\n";

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

    if ( empty($plaintext_pass) )
        return;

    $message  = sprintf(__('Логин: %s'), $user->user_login) . "\r\n";
    $message .= sprintf(__('Пароль: %s'), $plaintext_pass) . "\r\n";
    $message .= wp_login_url() . "\r\n";

    wp_mail($user->user_email, sprintf(__('[%s] Ваш логин и пароль'), $blogname), $message);

}
endif;
6 февр. 2015 г. 18:58:27
0

Если вы говорите о настройке мультисайта, это можно настроить через шаблон, который хранится в базе данных в двух разделах:

Приветственное письмо

и

Приветственное письмо пользователю

http://yoursite/wp-admin/network/settings.php

Вы можете настроить его по своему усмотрению.

30 авг. 2017 г. 23:02:18