Lors de l'ajout de nouveaux utilisateurs via le tableau de bord, j'ai remarqué que les courriels de notification envoyés à un utilisateur après leur ajout à Wordpress ne fonctionnaient pas correctement. La ligne suivante comprend le courrier électronique. Toutefois, vous remarquerez que la clé d'enregistrement est manquante et que le lien n'est pas rendu correctement.
To set your password, visit the following address: http://www.domain.com/wp-login.php
J'ai fait quelques recherches, en affichant le contenu de wp_mail comme ceci:
add_filter('wp_mail', function($email) {
var_dump($email);
return $email;
}, 1);
Et voir ceci pour le nouvel email de notification utilisateur:
array(5) {
["to"]=>
string(20) "[email protected]"
["subject"]=>
string(47) "[My Great Blog] Your username and password info"
["message"]=>
string(224) "Username: test19
To set your password, visit the following address:
<http://www.domain.com/wp-login.php?action=rp&key=1nTPsJVMk3H2eEM3Wgpm&login=test19>
http://www.domain.com/wp-login.php
"
["headers"]=>
string(0) ""
["attachments"]=>
array(0) {
}
}
Ce qui est étrange, c’est qu’il inclut en quelque sorte un lien correct, mais que le code HTML est mal formé (no A href = "") et qu’il manque la fermeture. Je l'ai confirmé sur Wordpress Trac.
Tout le monde a aucune idée sur pourquoi cela ne fonctionne pas, semble être une partie cruciale d'un site Web.
Version 4.9.8.
Définissez déjà 'wp_mail_content_type' sur text/html '.
WordPress 4.9.0 a introduit 2 filtres dans la nouvelle fonction de messagerie de notification d'utilisateur (wp_new_user_notification):
Nous pouvons ignorer le second car il s’agit du courrier électronique envoyé à l’administrateur, le format est différent de celui de votre question. wp_new_user_notification_email vous permet en revanche de modifier le 'à', le 'sujet', le 'message' et les 'en-têtes' avant qu'ils ne soient envoyés à la fonction wp_mail ().
Cependant, vous avez intercepté le filtre wp_mail qui se déclenche immédiatement après wp_new_user_notification_email et tout se passe bien à ce stade, le problème doit donc être ultérieur. Le message ne peut être filtré que par le biais du filtre wp_mail.
Si vous êtes convaincu qu'il n'y a pas de problème de jeu de caractères ou de courrier électronique côté client, recherchez tous les autres appels à add_filter ('wp_mail', ...). Consultez également le code source de l'e-mail reçu.
Désolé je ne peux pas être plus d'aide. C'est une question intéressante et j'ai hâte d'entendre enfin quelle est la solution ou toute autre suggestion.