Le nouvel e-mail de notification utilisateur est créé et envoyé par la fonction wp_new_user_notification()
, qui se trouve dans wp-includes / plugable.php
Il n'y a pas de crochet de filtre dans cette fonction qui vous permettra de manipuler la sortie de l'e-mail, mais vous pouvez bien sûr écraser toute fonction enfichable via un plugin.
Remarque - Vous ne pouvez remplacer les fonctions enfichables que depuis un plugin, pas depuis votre thème.
Voir ici pour plus de détails sur les fonctions enfichables et une liste complète de celles disponibles - http://codex.wordpress.org/Pluggable_Functions
Ce code créera le plugin qui sera utilisé à la place de celui dans wp-includes / plugable.php (enregistrez-le dans son propre fichier dans wp-content / plugins / ).
Je ne l'ai pas personnalisé pour vous, mais cela devrait vous mettre sur la bonne voie.
<?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;