Tutoriels WordPress Archives – WP Engineer

Publié le 17 décembre 2021 par Mycamer

Si un nouvel utilisateur s’inscrit sur un site WordPress, le nouvel utilisateur et l’administrateur reçoivent des e-mails de notification :

Utilisateur:

À partir de: monBlog (info@myBlog.com)
Sujet: [myBlog] Vos informations de nom d’utilisateur et de mot de passe

Nom d’utilisateur : nouvel_utilisateur

Pour définir votre mot de passe, rendez-vous à l’adresse suivante :

http://monblog/wp-login.php

Administrateur :

À partir de: monBlog (info@myBlog.com)
Sujet: [myBlog] Enregistrement d’un nouvel utilisateur

Inscription d’un nouvel utilisateur sur votre site myBlog :

Nom d’utilisateur : nouvel_utilisateur

E-mail: nouvel_utilisateur@monblog.com

Jusqu’à la version 4.8, le contenu du courrier était codé en dur. Le seul moyen de modifier les courriers était de se connecter à wp_mail() ou même phpmailer.

WordPress v4.9 offre désormais la possibilité de personnaliser facilement ces mails en utilisant les filtres suivants :

Les filtres se déclenchent une fois que l’utilisateur a été ajouté à la base de données.

Les filtres pour l’email de l’utilisateur et de l’administrateur suivent la même logique, seuls le filtre et les noms des variables diffèrent :

$wp_new_user_notification_email_admin = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blogname )

Les paramètres contiennent les valeurs suivantes :

  • $wp_new_user_notification_email_admin : Tableau associatif avec les clés de, sujet, message, en-têtes.
  • $user : Un objet WP_User de l’utilisateur enregistré.
  • $blogname : une chaîne contenant le nom du blog auquel l’utilisateur s’est enregistré.

Avec ces valeurs à portée de main, il est facile de créer votre courrier personnalisé :

add_action( 'login_init', 'my_wp_new_user_notification_email_admin_init' );



function my_wp_new_user_notification_email_admin_init() {

    add_filter( 'wp_new_user_notification_email_admin', 'my_wp_new_user_notification_email_admin', 10, 3 );

}



function my_wp_new_user_notification_email_admin( $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;



}

(Comme toujours pour les filtres : n’oubliez pas de retourner la variable modifiée.) Le courrier ressemble maintenant à ceci :

À partir de: monBlog (MonBlog@monblog.com)
Sujet: [myBlog] Nouvel utilisateur new_user enregistré.

new_user (new_user@user.com) s’est inscrit sur votre blog myBlog.

Bien entendu, vous pouvez insérer plus de données que celles fournies par le filtre. Par exemple, vous pouvez dire à l’administrateur combien d’utilisateurs enregistrés le blog a déjà :

function my_wp_new_user_notification_email_admin($wp_new_user_notification_email, $user, $blogname) {



    $user_count = count_users();



    $wp_new_user_notification_email['subject'] = sprintf('[%s] New user %s registered.',

$blogname, $user->user_login);

    $wp_new_user_notification_email['message'] =

    sprintf( "%s has registerd to your blog %s.", $user->user_login, $blogname) .

"nnr" . sprintf("This is your %d. user!", $user_count['total_users']);



    return $wp_new_user_notification_email;



}

Le paramètre en-têtes peut être utilisé pour modifier facilement certaines informations d’en-tête :

$wp_new_user_notification_email['headers'] = "From: myBlog <myblog@myblog.com> nr cc: Admin 2 <admin2@mblog.com>";

Dans cet exemple le À partir de les informations du courrier sont modifiées et l’utilisateur admin2@monblog est ajouté en tant que destinataire supplémentaire. Comme vous pouvez le voir, plusieurs entrées d’en-tête sont séparées par « nr » (retour et saut de ligne).

Comme dit précédemment, tout peut déjà être fait en utilisant wp_mail() et phpmailer, mais les nouveaux filtres sont bien plus pratiques.

— to wpengineer.com