Jak programowo zmienić hasło użytkownika

17

Próbuję utworzyć zupełnie inną stronę profilu (nie tę dostarczoną przez Wordpress), ponieważ układ i styl domyślnej strony profilu jest zbyt „Wordpress” dla użytkowników. Teraz z powodzeniem mogę zaprezentować stronę, która może modyfikować meta dane użytkownika, takie jak imię, nazwisko, miasto, kod pocztowy itp.

Teraz zaskoczyła mnie zmiana hasła użytkownika. Czy jest jakaś wbudowana funkcja wordpress, powiedz hasło_użytkownika_zmiany ($ ID_użytkownika, $ nowe_hasło)? Dziwi mnie, że nie mogę poszukać niczego, co by to zrobiło.

Co gorsza, robię UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, ale byłbym naprawdę zaskoczony, gdyby nie było żadnej funkcji dla tego.

Ardee Aram
źródło
1
md5hasła w WordPress są przestarzałe (ale nadal kompatybilne wstecz - przy następnym logowaniu użytkownik hasło zostanie ponownie skrócony i ponownie zapisany). Lepiej jest przejść przez API, aby zastosować aktualny i bardziej złożony schemat mieszania.
Rarst
Tak, też tak sądzę. Hasła przechowywane w bazie danych nie zgadzają się z MD5 z przychodzącym hasłem. Tak, tak, to jest rzeczywiście przerobione.
Ardee Aram

Odpowiedzi:

23
wp_set_password( $password, $user_id );

Zobacz odniesienie do szczegółów.

Rarst
źródło
1
Głosowałem za tym zasadniczo, ponieważ powoduje to pojedyncze zapytanie SQL. Doskonale, jeśli hasło to wszystko, co chcesz zaktualizować. wp_update_userskutkuje uruchomieniem około 14 zapytań.
Jan