Получить новый хешированный пароль после сброса пароля в WordPress

Как я могу получить хешированное значение нового пароля после того, как пользователь сбросит пароль в WordPress?

Я использую хук after_password_reset в моем файле functions.php, но $user ->user_pass предоставляет значение старого хешированного пароля (хешированный пароль до сброса пароля), а $new_pass предоставляет обычный текст нового пароля (не хешированный).

Я не понимаю, почему $user->user_pass предоставляет старый пароль, поскольку ловушка выполняется после сброса нового пароля.

Пример кода:

function action_after_password_reset( $user, $new_pass ) {

    $hashed_old_pass = $user->user_pass; // old hashed password, before password reset

    $unhashed_new_pass = $new_pass; // plain text of new password, unhashed

};
add_action( 'after_password_reset', 'action_after_password_reset', 10, 2 ); 

Для меня важно получить точное хэшированное значение нового пароля, хранящегося в базе данных. Я понимаю, что могу использовать wp_hash_password($new_pass) для создания другого хэша нового пароля, но мне нужно точное хэшированное значение, которое есть в базе данных.


person cody    schedule 20.12.2018    source источник


Ответы (1)


В момент выполнения действия пользователь был обновлен в таблице, но объект пользователя в памяти не обновляется.

Вы должны иметь возможность загрузить обновленный пользовательский объект из базы данных следующим образом:

$updated_user = get_user_by('id', $user->ID);
var_dump($updated_user->user_pass);
person Alexander O'Mara    schedule 20.12.2018
comment
Это решение сработало отлично, и я отметил его как принятый ответ. Большое спасибо, Александр. - person cody; 20.12.2018