gpt4 book ai didi

php - errors=invalidkey 用于 WordPress 自定义密码恢复页面

转载 作者:行者123 更新时间:2023-12-04 01:23:13 28 4
gpt4 key购买 nike

WordPress v5.4.1,我有以下代码从自定义页面发送密码重置邮件。

已关注 https://code.tutsplus.com/tutorials/build-a-custom-wordpress-user-flow-part-3-password-reset--cms-23811 .

// Custom message
function replace_retrieve_password_message($message, $key, $user_login, $user_data) {

global $wpdb;

$key = $wpdb->get_var("SELECT user_activation_key FROM $wpdb->users WHERE user_login ='" . $user_login . "'");
if (empty($key)) {
//generate reset key
$key = wp_generate_password(20, false);
$wpdb->update($wpdb->users, array('user_activation_key' => $key), array('user_login' => $user_login));
}
// Create new message
$msg = __('Hello!') . "\r\n\r\n";
$msg .= sprintf(__('You asked us to reset your password for your account using the email address %s.'), $user_login) . "\r\n\r\n";
$msg .= __("If this was a mistake, or you didn't ask for a password reset, just ignore this email and nothing will happen.") . "\r\n\r\n";
$msg .= __('To reset your password, visit the following address:') . "\r\n\r\n";
$msg .= site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n\r\n";
$msg .= __('Thanks!') . "\r\n";

return $msg;
}

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

用户收到密码重置电子邮件,点击链接时,它给出了 errors=invalidkey
我尝试删除自定义 $key 函数以生成 WordPress 默认 key 。然后我将有密码重置页面,但任何操作都显示 errors=invalidkey

最佳答案

为什么要重新生成 $key?为什么不只使用传递给回调的那个?

但是如果你必须重新生成它,那么你可以使用 get_password_reset_key() :

$key = get_password_reset_key( $user_data );

关于php - errors=invalidkey 用于 WordPress 自定义密码恢复页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62308572/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com