Сброс пароля - изменение имени и email отправителя

17 дек. 2013 г., 12:10:54
Просмотры: 16.3K
Голосов: 3

При отправке письма для сброса пароля, имя отправителя указано как 'WordPress', а email - wordpress@domain.com. Мне нужно заменить их на название компании.

Я использую WordPress 3.8 мультисайт и уже выполнил следующее:

  • Обновил название и email в основных настройках для подсайта
  • Установил плагин 'WP Change Email' и обновил данные

Однако это не дало эффекта. Я думаю, это потому что функционал сброса пароля использует другие хуки.

Я использую следующий код (из http://s14.codeinspot.com/q/2472332) в functions.php для кастомизации темы и тела письма сброса пароля:

function my_retrieve_password_subject_filter($old_subject) {
    // $old_subject - стандартная тема письма, создаваемая WordPress
    // (Вы не обязаны её использовать)

    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    $subject = sprintf( __('[%s] Сброс пароля'), $blogname );
    // Так WordPress создает тему письма. Выглядит так:
    // [Блог Дуга] Сброс пароля
    // Вы можете изменить это по своему усмотрению

    // Необходимо вернуть новую тему письма:
    return $subject;
}

function my_retrieve_password_message_filter($old_message, $key) {
    // $old_message - стандартное сообщение от WordPress
    // (Вы не обязаны его использовать)
    // $key - токен для сброса пароля

    $message = __('Кто-то запросил сброс пароля для следующего сайта и имени пользователя.') . "\r\n\r\n";
    $message .= network_site_url() . "\r\n\r\n";
    $message .= sprintf(__('Имя пользователя: %s'), $user_login) . "\r\n\r\n";
    $message .= __('Для сброса пароля перейдите по следующей ссылке, в противном случае просто проигнорируйте это письмо.') . "\r\n\r\n";
    $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n";

    // Так WordPress создает сообщение.
    // Вы можете изменить его по своим нуждам.

    // Необходимо вернуть новое сообщение:
    return $message;
}

// Активация фильтров:
add_filter ( 'retrieve_password_title', 'my_retrieve_password_subject_filter', 10, 1 );
add_filter ( 'retrieve_password_message', 'my_retrieve_password_message_filter', 10, 2 );

Однако я не знаю, как расширить этот функционал, чтобы изменить имя и email отправителя?

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

Вы можете использовать следующие два хука для изменения имени и адреса электронной почты отправителя.

Добавьте следующий код в файл functions.php вашей активной темы.

add_filter( 'wp_mail_from', 'wpse_new_mail_from' );     
function wpse_new_mail_from( $old ) {
    return 'ваш email адрес'; // Замените на ваш email адрес
}

add_filter('wp_mail_from_name', 'wpse_new_mail_from_name');
function wpse_new_mail_from_name( $old ) {
    return 'ваше имя или название сайта'; // Замените на ваше имя/название компании
}
17 дек. 2013 г. 12:23:53
1

Используйте следующий код в файле functions.php вашей активной темы. Нет необходимости вручную указывать email-адрес и название блога, так как они будут взяты из настроек WordPress: Настройки > Общие.

add_filter( 'wp_mail_from', 'new_mail_from' );
add_filter( 'wp_mail_from_name', 'new_mail_from_name' );
function new_mail_from( $old ) {
    return get_option( 'admin_email' );
}
function new_mail_from_name( $old ) {
    return get_option( 'blogname' ); 
}
2 мар. 2016 г. 13:52:27
Комментарии

Правильный способ сделать это.

Armstrongest Armstrongest
10 дек. 2018 г. 11:15:02