Как программно изменить пароль пользователя


17

Я пытаюсь создать совершенно другую страницу профиля (не ту, что предоставляется Wordpress), поскольку макет и вид страницы профиля по умолчанию слишком "Wordpress" для пользователей. Теперь мне удается представить страницу, которая может изменять метаданные пользователя, такие как имя, фамилия, город, почтовый индекс и т. Д.

Что меня озадачило, так это изменение пароля пользователя. Есть ли встроенная функция wordpress, скажем change_user_password ($ user_id, $ new_password)? Я удивлен, что я не могу искать ничего, что делает это.

Хуже всего то, что я делаю UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, но я был бы очень удивлен, если бы для этого не было функции.


1
md5для паролей в WordPress устарела (но все еще обратно совместима - при следующем входе пользователя пароль будет повторно хеширован и повторно сохранен). Лучше пройти через API, чтобы использовать текущую и более сложную схему хеширования.
Первый

Да, я тоже так думаю. Пароли, хранящиеся в базе данных, не соответствуют MD5 с входящим паролем. Так что да, это действительно перефразировано.
Арди Арам

Ответы:


23
wp_set_password( $password, $user_id );

Смотрите ссылку для деталей.


1
Я проголосовал за это по существу, потому что это приводит к одному SQL-запросу. Отлично, если пароль есть, все, что вы хотите обновить. wp_update_userв результате работает около 14 запросов.
Джон

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.