wp_set_password() WP 2.5.0
Изменяет пароль указанного пользователя. Обновляет указанный пароль в БД и сбрасывает кэш пользователя.
Заметка: функцию нужно использовать осторожно, её нужно вызывать единожды, например, только при активации или деактивации плагина. Обратите внимание на то, чтобы функция не вызывалась при каждой загрузке страницы!
Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуков нет.
Возвращает
Ничего. null
Использование
wp_set_password( $password, $user_id );
- $password(строка) (обязательный)
- Новый пароль, который нужно установить. Указывается текстом.
- $user_id(число) (обязательный)
- ID пользователя для которого нужно установить указанный пароль.
Примеры
#1 Пример смены (сброса) пароля через PHP
Вставьте следующий код в файл темы functions.php, а затем, чтобы активировать функцию зайдите на любую страницу сайта и допишите в URL ?init_new_pass_set=mylogin
. В результате пароль пользователя mylogin
будет изменен на resetpass
. После этого код можно удалить.
if( isset($_GET['init_new_pass_set']) ){ add_action( 'init', function () { $user = get_user_by( 'login', $_GET['init_new_pass_set'] ); wp_set_password( 'resetpass', $user->ID ); } ); }
Заметки
- Global. wpdb. $wpdb WordPress database abstraction object.
Список изменений
С версии 2.5.0 | Введена. |
Код wp_set_password() wp set password WP 5.6.2
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 )
);
clean_user_cache( $user_id );
}