Comment puis-je changer de modèle d'e-mail pour un nouvel utilisateur


10

Lorsque j'ajoute un nouveau client, l'e-mail est envoyé au nouvel utilisateur dans ce format:

From: WordPress [wordpress@siteurl.com]
Subject: [site name] Your user name and password
Message:
         username: user
         Password: password
         siteurl.com/wp-login.php

Maintenant, je veux changer ce format comme ceci:

From: My Site Name [info@siteurl.com]
Subject: siteurl.com customer account activated
Message:
       Your customer account has been activated.

       Your Login credentials are:

       Username: user email
       Password: password

       Thanks,
       abcd

J'ai essayé cette réponse mais ça ne marche pas.

Comment puis-je faire ceci?

Réponses:


17

Pour les utilisateurs de 2018 et suivants:

La réponse de David Gard fonctionne toujours mais est ancienne et il existe une nouvelle façon meilleure / plus propre de le faire (plus besoin de plugin).

Depuis WordPress 4.9.0, il existe de nouveaux filtres que vous pouvez utiliser pour personnaliser les e-mails d'inscription:

Exemple d'utilisation d'un e-mail envoyé à l'administrateur (vous pouvez le coller dans le fichier 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;
}

7

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;

1

Si vous faites référence à une configuration multisite, celle-ci est configurable via un modèle configuré dans la base de données sous 2 sections:

Courriel de bienvenue

et

Courriel de bienvenue de l'utilisateur

http: //votresite/wp-admin/network/settings.php

Vous pouvez le personnaliser à votre guise.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.