web-dev-qa-db-fra.com

Comment changer l'email d'inscription par défaut? (plugin et/ou non-plugin)

Après un nouvel enregistrement d'utilisateur, WP envoie un courrier électronique avec le nom d'utilisateur/mot de passe et un lien vers la page de connexion.

Existe-t-il un moyen de changer ce modèle de courrier électronique par défaut? J'aimerais aussi changer de sujet et d'expéditeur.

Edit: Pour ceux qui sont intéressés, ici est une solution plugin.

52
mike23

le nouvel e-mail de l'utilisateur est envoyé à l'aide de la fonction wp_new_user_notification() qui est connectable, ce qui signifie que vous pouvez l'écraser:

// Redefine user notification function
if ( !function_exists('wp_new_user_notification') ) {
    function wp_new_user_notification( $user_id, $plaintext_pass = '' ) {
        $user = new WP_User($user_id);

        $user_login = stripslashes($user->user_login);
        $user_email = stripslashes($user->user_email);

        $message  = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n";
        $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
        $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n";

        @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message);

        if ( empty($plaintext_pass) )
            return;

        $message  = __('Hi there,') . "\r\n\r\n";
        $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n";
        $message .= wp_login_url() . "\r\n";
        $message .= sprintf(__('Username: %s'), $user_login) . "\r\n";
        $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n";
        $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n";
        $message .= __('Adios!');

        wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message);

    }
}
60
Bainternet

Pour les utilisateurs à partir de 2018:

Depuis WordPress 4.9.0, il existe de nouveaux filtres que vous pouvez utiliser pour cela (plus besoin d'un plugin):

Exemple d'utilisation d'un courrier électronique envoyé à l'administrateur (vous pouvez le coller dans le functions.php de votre thème):

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] New user %s registered.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname );
    return $wp_new_user_notification_email;
}
19
Edu Wass

Cela ne fonctionnera pas sur functions.php, vous devez mettre ce code dans le plugin.

si vous ne faites pas maintenant un plugin pour cela utilisez simplement ceci link

n'oubliez pas de prendre le code de mise à jour de cette fonction sous la forme ici

3
Erez Lieberman