默认情况下,当用户提交password reset 从…起wp-login.php, reset_password 被调用。在里面user.php, reset_password()
触发password_reset
在设置前可以看到纯文本版本的挂钩。同样适用于after_password_reset
.
add_action( \'password_reset\', \'my_password_reset\', 10, 2 );
function my_password_reset( $user, $new_pass ) {
// Do something before password reset.
}
wp_set_password()
立即运行
wp_hash_password()
并作为加密文本输入数据库。上面的钩子是您最后一次看到密码的纯文本版本。
function wp_hash_password($password) {
global $wp_hasher;
if ( empty($wp_hasher) ) {
require_once( ABSPATH . WPINC . \'/class-phpass.php\');
// By default, use the portable hash from phpass
$wp_hasher = new PasswordHash(8, true);
}
return $wp_hasher->HashPassword( trim( $password ) );
}
操作完成后
login_header 设置为“您的密码已重置”。
如您所见,使用wp_get_current_user()
或get_user_by()
稍后将仅显示加密版本。
$user = wp_get_current_user();
echo $user->data->user_pass;
$user = get_user_by (\'id\', 1 );
echo $user->data->user_pass;
如果要使用编写自定义函数
wp_generate_password()
然后由您决定如何向用户显示纯文本版本,就像
wp-login.php 做