So ändern Sie das Kennwort eines Benutzers programmgesteuert


16

Ich versuche, eine völlig andere Profilseite zu erstellen (nicht die von Wordpress bereitgestellte), da das Layout und das Verhalten der Standardprofilseite für die Benutzer zu "Wordpress" ist. Jetzt ist es mir gelungen, eine Seite zu präsentieren, auf der Benutzer-Metadaten wie Vorname, Nachname, Ort, Postleitzahl usw. geändert werden können.

Was mich nun ratlos gemacht hat, ist das Ändern des Passworts des Benutzers. Gibt es eine integrierte WordPress-Funktion, z. B. change_user_password ($ user_id, $ new_password)? Ich bin überrascht, dass ich nichts suchen kann, was dies tut.

Schlimmer noch, ich mache eine UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, aber ich wäre wirklich erstaunt, wenn es für diese keine Funktion gibt.


1
md5für Passwörter in WordPress ist veraltet (aber immer noch abwärtskompatibel - das nächste Mal, wenn sich Benutzer anmelden, wird das Passwort erneut gehasht und gespeichert). Es ist besser, die API zu durchlaufen, damit das aktuelle und komplexere Hashing-Schema verwendet wird.
Rarst

Ja, das schätze ich auch. Die in der Datenbank gespeicherten Passwörter stimmen nicht mit einem MD5 mit dem eingehenden Passwort überein. Also ja, es ist in der Tat aufgewärmt.
Ardee Aram

Antworten:


22
wp_set_password( $password, $user_id );

Siehe Referenz für Details.


1
Ich habe im Wesentlichen dafür gestimmt, weil dies zu einer einzelnen SQL-Abfrage führt. Hervorragend, wenn das Passwort alles ist, was Sie aktualisieren möchten. wp_update_userführt dazu, dass ungefähr 14 Abfragen ausgeführt werden.
John

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.