reset_password()
云策文档标注
概述
reset_password() 是 WordPress 中用于重置用户密码的核心函数,它通过调用 wp_set_password() 更新密码哈希,并触发相关 Hook 以支持自定义操作。
关键要点
- 函数接受两个必需参数:WP_User 对象 $user 和明文新密码字符串 $new_pass。
- 内部执行流程:先触发 'password_reset' Hook,然后调用 wp_set_password() 更新密码,并设置 default_password_nag 用户元数据为 false,最后触发 'after_password_reset' Hook。
- 该函数自 WordPress 2.5.0 版本引入,是用户密码管理的关键组成部分。
代码示例
// 示例:重置指定用户的密码
$user = get_user_by('login', 'example_user');
if ($user) {
reset_password($user, 'new_secure_password123');
}注意事项
- 确保 $new_pass 参数为明文密码,函数内部会处理哈希存储。
- 使用前应验证用户权限,避免未授权操作。
- 注意 Hook 的执行时机:'password_reset' 在密码更新前触发,'after_password_reset' 在更新后触发,可用于扩展功能。
原文内容
Handles resetting the user’s password.
Parameters
$userWP_Userrequired-
The user
$new_passstringrequired-
New password for the user in plaintext
Source
function reset_password(
$user,
#[SensitiveParameter]
$new_pass
) {
/**
* Fires before the user's password is reset.
*
* @since 1.5.0
*
* @param WP_User $user The user.
* @param string $new_pass New user password.
*/
do_action( 'password_reset', $user, $new_pass );
wp_set_password( $new_pass, $user->ID );
update_user_meta( $user->ID, 'default_password_nag', false );
/**
* Fires after the user's password is reset.
*
* @since 4.4.0
*
* @param WP_User $user The user.
* @param string $new_pass New user password.
*/
do_action( 'after_password_reset', $user, $new_pass );
}
Hooks
- do_action( ‘after_password_reset’, WP_User $user, string $new_pass )
-
Fires after the user’s password is reset.
- do_action( ‘password_reset’, WP_User $user, string $new_pass )
-
Fires before the user’s password is reset.
Changelog
| Version | Description |
|---|---|
| 2.5.0 | Introduced. |