Сброс пароля - изменение имени и email отправителя
При отправке письма для сброса пароля, имя отправителя указано как '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 отправителя?

Вы можете использовать следующие два хука для изменения имени и адреса электронной почты отправителя.
Добавьте следующий код в файл 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 'ваше имя или название сайта'; // Замените на ваше имя/название компании
}

Используйте следующий код в файле 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' );
}
