Maison  >  Questions et réponses  >  le corps du texte

Comment ajouter un lien de réinitialisation de mot de passe WordPress dans un e-mail HTML ?

<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粉136356287P粉136356287435 Il y a quelques jours593

répondre à tous(1)je répondrai

  • P粉838563523

    P粉8385635232023-09-03 10:30:11

    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.

    répondre
    0
  • Annulerrépondre