Новое электронное уведомление пользователя создается и отправляется функцией wp_new_user_notification()
, найденной в wp-includes / plugable.php
В этой функции нет ловушки фильтра, которая позволила бы вам манипулировать выводом электронного письма, однако вы, конечно, можете перезаписать любую подключаемую функцию через плагин.
Примечание. Вы можете перезаписывать подключаемые функции только внутри плагина, но не внутри своей темы.
Смотрите здесь для получения дополнительной информации о подключаемых функциях и полный список доступных функций - http://codex.wordpress.org/Pluggable_Functions
Этот код создаст плагин, который будет использоваться вместо того, который используется в wp-includes / plugable.php (сохраните его в своем собственном файле в wp-content / plugins / ).
Я не настроил это для вас, но это должно помочь вам.
<?php
/**
* Plugin Name: Custom new user notification email
* Description: Overwrites the pluggable 'wp_new_user_notification()' plugin to allow the sending of a custom email
* Author: David Gard
* Version: 1.0
*/
if ( !function_exists('wp_new_user_notification') ) :
/**
* Pluggable - Email login credentials to a newly-registered user
*
* A new user registration notification is also sent to admin email.
*
* @since 2.0.0
*
* @param int $user_id User ID.
* @param string $plaintext_pass Optional. The user's plaintext password. Default empty.
*/
function wp_new_user_notification($user_id, $plaintext_pass = ''){
$user = get_userdata($user_id);
// The blogname option is escaped with esc_html on the way into the database in sanitize_option
// we want to reverse this for the plain text arena of emails.
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
$message = sprintf(__('New user registration on your site %s:'), $blogname) . "\r\n\r\n";
$message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
$message .= sprintf(__('E-mail: %s'), $user->user_email) . "\r\n";
@wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
if ( empty($plaintext_pass) )
return;
$message = sprintf(__('Username: %s'), $user->user_login) . "\r\n";
$message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
$message .= wp_login_url() . "\r\n";
wp_mail($user->user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);
}
endif;