我正在为 Wordpress 通知使用 HTML 自定义电子邮件模板。
每个模板都可以正常工作。但是,出于某种原因-密码重置模板(否则可以正常工作)不会user_login在密码重置链接的末尾附加变量-这对于密钥有效至关重要。没有 WP 密码重置页面上的链接$user_login会呈现“无效密钥”错误。
链接中的字符串示例如下 - 请注意最后的缺失login=username。
url/wp-login.php?redirect_to=url?action=rp&key=12345678910&login=http://url.com/wp-login.php?redirect_to=url?action=rp&key=12345678910&login=
这是我用来修改模板的代码。有谁知道为什么会这样 - 如果是这样,我该如何解决?
add_filter ('retrieve_password_message', 'custom_retrieve_password_message', 10, 2);
function custom_retrieve_password_message($content, $key) {
global $wpdb;
$user_login = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_activation_key = '$key'");
ob_start();
$email_subject = custom_retrieve_password_title();
include('email_header.php');
?>
<p>It looks like you need to reset your password for your account!</p>
<p>To reset your password, visit the following address, otherwise just ignore this email and nothing will happen.<p>
<a href="<?php echo wp_login_url("url") ?>?action=rp&key=<?php echo $key ?>&login=<?php echo $user_login ?>">Reset password</a>
<?php
include('email_footer.php');
$message = ob_get_contents();
ob_end_clean();
return $message;
}