# get_password_reset_key()

URL: https://chugunov.pro/api-wordpress/functions/get_password_reset_key/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.4.0.

## Сигнатура

```php
get_password_reset_key( WP_User $user ): string|WP_Error
```

## Описание

Создаёт, сохраняет и затем возвращает ключ сброса пароля для пользователя.

## Параметры

- `$user` `WP_User` — обязательный. Пользователь, для которого нужно получить ключ сброса пароля.

## Возвращаемое значение

`string|WP_Error` — WP_Error

## Исходный код

Файл: `wp-includes/user.php:3081`

```php
function get_password_reset_key( $user ) {
	if ( ! ( $user instanceof WP_User ) ) {
		return new WP_Error( 'invalidcombo', __( '<strong>Error:</strong> There is no account with that username or email address.' ) );
	}

	/**
	 * Fires before a new password is retrieved.
	 *
	 * Use the 'retrieve_password' hook instead.
	 *
	 * @since 1.5.0
	 * @deprecated 1.5.1 Misspelled. Use 'retrieve_password' hook instead.
	 *
	 * @param string $user_login The user login name.
	 */
	do_action_deprecated( 'retreive_password', array( $user->user_login ), '1.5.1', 'retrieve_password' );

	/**
	 * Fires before a new password is retrieved.
	 *
	 * @since 1.5.1
	 *
	 * @param string $user_login The user login name.
	 */
	do_action( 'retrieve_password', $user->user_login );

	$password_reset_allowed = wp_is_password_reset_allowed_for_user( $user );
	if ( ! $password_reset_allowed ) {
		return new WP_Error( 'no_password_reset', __( 'Password reset is not allowed for this user' ) );
	} elseif ( is_wp_error( $password_reset_allowed ) ) {
		return $password_reset_allowed;
	}

	// Generate something random for a password reset key.
	$key = wp_generate_password( 20, false );

	/**
	 * Fires when a password reset key is generated.
	 *
	 * @since 2.5.0
	 *
	 * @param string $user_login The username for the user.
	 * @param string $key        The generated password reset key.
	 */
	do_action( 'retrieve_password_key', $user->user_login, $key );

	$hashed = time() . ':' . wp_fast_hash( $key );

	$key_saved = wp_update_user(
		array(
			'ID'                  => $user->ID,
			'user_activation_key' => $hashed,
		)
	);

	if ( is_wp_error( $key_saved ) ) {
		return $key_saved;
	}

	return $key;
}
```

## История изменений

- 4.4.0 — Introduced.

## Связанные

Использует: [`wp_fast_hash`](https://chugunov.pro/api-wordpress/functions/wp_fast_hash/), [`wp_is_password_reset_allowed_for_user`](https://chugunov.pro/api-wordpress/functions/wp_is_password_reset_allowed_for_user/), [`do_action_deprecated`](https://chugunov.pro/api-wordpress/functions/do_action_deprecated/), [`wp_generate_password`](https://chugunov.pro/api-wordpress/functions/wp_generate_password/), [`wp_update_user`](https://chugunov.pro/api-wordpress/functions/wp_update_user/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/), `WP_Error::__construct`.
Используется в: [`retrieve_password`](https://chugunov.pro/api-wordpress/functions/retrieve_password/), [`wp_new_user_notification`](https://chugunov.pro/api-wordpress/functions/wp_new_user_notification/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/get_password_reset_key/
