如何在HTML邮件中添加WordPress密码重置链接?
P粉136356287
2023-09-02 13:52:43
<p>我正在尝试用Html邮件替换WP核心密码重置邮件。总体上效果很好,邮件格式化得很好,并且正确发送。然而,实现动态重置链接不起作用(用户名也是如此,但这甚至不是最重要的事情)</p>
<p>我在我的模板的functions.php中使用了以下代码:</p>
<pre class="brush:php;toolbar:false;">add_filter( 'wp_mail_content_type','prefix_set_content_type' );
function prefix_set_content_type() {
return "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...>很多html内容(基本上是格式化的邮件)</html>'</pre>
<p>这样做会导致致命错误,因为函数期望4个参数,但只接收到2个(错误报告邮件中说的)。当我省略$user_data和$key时,错误消失了,但我仍然不知道如何实现动态链接...</p>
<p>当我尝试在Html中包含这个链接时,它只会发送链接的一半(可能是由于'""'的原因):</p>
<pre class="brush:php;toolbar:false;">' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . '</pre>
<p>有人对如何解决这个问题有什么想法吗?谢谢。</p>
在这行的末尾放上4,而不是2。
你必须告诉 add_filter() 和 add_action() 钩子函数需要多少个参数。