Comment changer l'email d'inscription par défaut? (plugin et / ou non-plugin)
54
Après une nouvelle inscription 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 les personnes intéressées, voici une solution de plugin.
le nouvel email de l'utilisateur est envoyé en utilisant la wp_new_user_notification()fonction qui est connectable, ce qui signifie que vous pouvez l'écraser:
// Redefine user notification functionif(!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);}}
@Bainternet Je n'arrive pas à obtenir que cela fonctionne, je l'ai ajouté à mon fichier de fonctions, mais le courrier électronique standard continue à envoyer. Je suis sur plusieurs sites, mais cela ne devrait pas avoir d'importance, non?
6
OK obtenu maintenant, il semble seulement fonctionner comme un plugin séparé, pas lorsque vous l'ajoutez à votre functions.phpfichier. Maintenant cela fonctionne parfaitement, merci encore pour ce beau morceau de code!
Cela fonctionne-t-il également pour le multisite? Je peux voir que multisite a un tas de fonctions dans ms-functions.php pour envoyer un email de notification.
Cette réponse a plusieurs années. La réponse acceptée ne fonctionne pas pour moi. (L'ajouter à functions.php n'a aucune incidence sur les courriers électroniques envoyés lorsqu'un nouvel utilisateur s'enregistre.) Devrais-je poser une nouvelle question?
Kit Johnson
23
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):
Vous pouvez également utiliser les filtres wp_new_user_notification_emailet wp_new_user_notification_email_admin. Les personnes intéressées peuvent consulter la documentation complète et le code source pour wp_new_user_notification().
Pete
Merci Pete, on dirait que cela a été introduit dans 4.9.0 et semble être une meilleure solution.
Edu Wass
3
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 ce lien
n'oubliez pas de prendre le code de mise à jour de cette forme de fonction ici
functions.php
fichier. Maintenant cela fonctionne parfaitement, merci encore pour ce beau morceau de code!wpmu_signup_user_notification
je pense.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 fichier functions.php de votre thème ):
la source
wp_new_user_notification_email
etwp_new_user_notification_email_admin
. Les personnes intéressées peuvent consulter la documentation complète et le code source pourwp_new_user_notification()
.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 ce lien
n'oubliez pas de prendre le code de mise à jour de cette forme de fonction ici
la source