Cum să schimbi parola unui utilizator programatic

21 feb. 2011, 03:53:08
Vizualizări: 39.1K
Voturi: 23

Încerc să creez o pagină de profil complet diferită (nu cea furnizată de WordPress), deoarece aspectul și experiența paginii de profil implicite este prea "WordPress" pentru utilizatori. Până acum am reușit să prezint o pagină care poate modifica datele meta ale utilizatorului precum prenumele, numele, orașul, codul poștal etc.

Ceea ce m-a blocat este schimbarea parolei utilizatorului. Există vreo funcție WordPress încorporată, să zicem change_user_password($user_id, $new_password)? Sunt surprins că nu pot găsi nimic care să facă acest lucru.

În cel mai rău caz, voi folosi UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, dar aș fi foarte uimit dacă nu există o funcție pentru acest lucru.

2
Comentarii

md5 pentru parole în WordPress este învechit (dar încă compatibil în versiunile anterioare - data viitoare când utilizatorul se autentifică, parola va fi re-hashuită și re-salvată). Este mai bine să folosiți API-ul pentru a utiliza schema curentă și mai complexă de hashing.

Rarst Rarst
21 feb. 2011 12:27:43

Da, cred și eu asta. Parolele stocate în baza de date nu se potrivesc cu o parolă MD5 a parolei primite. Deci da, este într-adevăr re-hashuită.

Ardee Aram Ardee Aram
28 feb. 2011 09:14:21
Toate răspunsurile la întrebare 2
1
39
wp_set_password( $password, $user_id );

Consultați referința pentru detalii.

21 feb. 2011 10:49:01
Comentarii

Am votat pozitiv acest răspuns în principal pentru că rezultă într-o singură interogare SQL. Excelent, dacă parola este tot ce dorești să actualizezi. wp_update_user duce la rularea a aproximativ 14 interogări.

John John
16 iul. 2012 22:31:23
0
17

Un simplu wp_update_user(array('ID' => $userid, 'user_pass' => 'myNeWpaSSword')) va face totul pentru tine - wp_update_user() (Codex).

Ca o observație: ești conștient de Theme My Login (Plugin Wordpress)? Acesta poate să-ți ofere o pagină de profil în partea de front-end.

21 feb. 2011 04:12:39