在html邮件中实现wordpress密码重置链接?

j5fpnvbx  于 2022-12-02  发布在  WordPress
关注(0)|答案(1)|浏览(138)

我正在尝试用Html邮件替换WP核心密码重置邮件。总体上效果很好,邮件格式很好,发送正确。但是,实现动态重置链接不起作用(还有用户名,但这甚至不是最重要的事情)
我在模板的functions.php中使用了以下代码:

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...>a lot of html content (basically formatted mail)</html>'

这样,它给了我一个严重的错误,因为在函数中期望4个参数,但只收到2个(这是错误报告邮件中说的)。当我省略$user_data和$key时,错误消失了,但我仍然不知道如何实现动态链接。
当我尝试在Html中包含此链接时,它只会发送链接的一半(可能是由于带有“"”的内容):`

' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . '

有人知道怎么解决吗?谢谢。

hjzp0vay

hjzp0vay1#

在这条线的末尾写上4,而不是2。

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

你必须告诉add_filter()add_action()钩子函数需要多少个参数。

相关问题