wp_set_password

Изменяет пароль указанного пользователя. Обновляет указанный пароль в БД и сбрасывает кэш пользователя.

Эту функцию можно переопределить в плагине, когда для хеширования пароля используется сторонний алгоритм.

Заметка: функцию нужно использовать осторожно, её нужно вызывать единожды, например, только при активации или деактивации плагина. Обратите внимание на то, чтобы функция не вызывалась при каждой загрузке страницы!

Хуков нет.

Возвращает

Ничего. null

Использование

wp_set_password( $password, $user_id );
$password(строка) (обязательный)
Новый пароль, который нужно установить. Указывается текстом.
$user_id(число) (обязательный)
ID пользователя для которого нужно установить указанный пароль.

Примеры

#1 Пример смены (сброса) пароля через PHP

Вставьте следующий код в файл темы functions.php, а затем зайдите на любую страницу сайта и допишите в URL ?set_pass_for=mylogin, чтобы активировать функцию. В результате пароль пользователя mylogin будет изменен на resetpass. После этого код можно удалить.

if( isset($_GET['set_pass_for']) ){
	add_action('init', function () {
		$user = get_user_by( 'login', $_GET['set_pass_for'] );
		wp_set_password( 'resetpass', $user->ID ); }
	);
}

Код из


wp-includes/pluggable.php

WP 4.7.2

<?php
function wp_set_password( $password, $user_id ) {
	global $wpdb;

	$hash = wp_hash_password( $password );
	$wpdb->update($wpdb->users, array('user_pass' => $hash, 'user_activation_key' => ''), array('ID' => $user_id) );

	wp_cache_delete($user_id, 'users');
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *