Comment ajouter un lien de réinitialisation de mot de passe WordPress dans un e-mail HTML ?
P粉136356287
P粉136356287 2023-09-02 13:52:43
0
1
623
<p>J'essaie de remplacer l'e-mail de réinitialisation du mot de passe principal de WP par un e-mail HTML. Dans l’ensemble cela fonctionne très bien, les emails sont bien formatés et envoyés correctement. Cependant, implémenter une réinitialisation dynamique du lien ne fonctionne pas (tout comme le nom d'utilisateur, mais ce n'est même pas le plus important) </p> <p>J'ai utilisé le code suivant dans le fichierfunctions.php de mon modèle : </p> <pre class="brush:php;toolbar:false;">add_filter( 'wp_mail_content_type','prefix_set_content_type' ); fonction prefix_set_content_type() { renvoie "text/html" ; } add_filter( 'retrieve_password_message', 'replace_retrieve_password_message', 10, 2 ); function replace_retrieve_password_message( $message, $key, $user_login, $user_data ) { $message = '<html...>Beaucoup de contenu HTML (e-mails essentiellement formatés)</html>'</pre> <p>Cela entraînera une erreur fatale car la fonction attend 4 paramètres mais n'en reçoit que 2 (indiqué dans l'e-mail de rapport de bug). Lorsque j'omets $user_data et $key, l'erreur disparaît, mais je ne sais toujours pas comment implémenter la liaison dynamique...</p> <p>Lorsque j'essaie d'inclure ce lien dans HTML, il n'envoie que la moitié du lien (probablement à cause du '""') : </p> <pre class="brush:php;toolbar:false;">' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), ' connexion' ) '</pre> <p>Quelqu'un a-t-il une idée sur la manière de résoudre ce problème ? Merci. </p>
P粉136356287
P粉136356287

répondre à tous(1)
P粉838563523

Mettez 4 au bout de la ligne au lieu de 2.

add_filter('retrieve_password_message', 'replace_retrieve_password_message',10,4);

Vous devez indiquer à add_filter() et add_action() de combien de paramètres la fonction hook a besoin.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal