Ich versuche, die E-Mail zum Zurücksetzen des WP-Core-Passworts durch eine HTML-E-Mail zu ersetzen. Insgesamt funktioniert es großartig, die E-Mails sind gut formatiert und werden korrekt gesendet. Allerdings funktioniert die Implementierung eines dynamischen Zurücksetzens des Links nicht (ebenso wie der Benutzername, aber das ist nicht einmal das Wichtigste)
Ich habe den folgenden Code in der Functions.php meiner Vorlage verwendet:
add_filter( 'wp_mail_content_type','prefix_set_content_type' ); Funktion prefix_set_content_type() { return "text/html"; } add_filter( 'retrieve_password_message', 'replace_retrieve_password_message', 10, 2 ); Funktion replace_retrieve_password_message( $message, $key, $user_login, $user_data ) { $message = 'Viele HTML-Inhalte (hauptsächlich formatierte E-Mails)'
Dies führt zu einem schwerwiegenden Fehler, da die Funktion 4 Parameter erwartet, aber nur 2 empfängt (siehe E-Mail mit dem Fehlerbericht). Wenn ich $user_data und $key weglasse, verschwindet der Fehler, aber ich weiß immer noch nicht, wie ich dynamische Verknüpfungen implementieren soll...
Wenn ich versuche, diesen Link in HTML einzubinden, wird nur die Hälfte des Links gesendet (wahrscheinlich aufgrund des „"“):
' network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), ' login' ) '
Hat jemand eine Idee, wie dieses Problem gelöst werden kann? Danke.
在这行的末尾放上4,而不是2。
你必须告诉add_filter()和add_action()钩子函数需要多少个参数。