函数文档

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.