WordPress как на ладони
WordCamp Saint Petersburg 2018 wordpress jino

wp_set_password() WP 2.5.0

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

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

Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.

Замена функции (переопределение) — в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

Работает на основе: wp_hash_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 set password: wp-includes/pluggable.php VER 4.9.6

<?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');
}

Cвязанные функции

Из метки: password (пароли)

Еще из метки: Безопасность

Еще из раздела: Вход/выход

wp_set_password Комментариев нет

    Здравствуйте, !