Come modificare la password di un utente a livello di codice


17

Sto cercando di creare una pagina di profilo completamente diversa (non quella fornita da Wordpress), poiché il layout e la sensazione della pagina del profilo predefinito è troppo "Wordpress" per gli utenti. Ora riesco a presentare una pagina in grado di modificare i metadati dell'utente come nome, cognome, città, codice postale, ecc.

Ora quello che mi ha sorpreso è cambiare la password dell'utente. Esiste una funzione wordpress integrata, ad esempio change_user_password ($ user_id, $ new_password)? Sono sorpreso di non poter cercare nulla che faccia questo.

Peggio ancora, sto facendo un peggio UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, ma sarei davvero stupito se non ci fosse alcuna funzione per questo.


1
md5per le password in WordPress è obsoleto (ma è ancora compatibile con le versioni precedenti - la prossima volta che gli utenti accedono alla password verranno rielaborati e salvati di nuovo). È meglio passare attraverso l'API in modo da utilizzare lo schema di hashing attuale e più complesso.
Rarst

Sì, anche questa è la mia ipotesi. Le password archiviate nel database non corrispondono a un MD5 con la password in arrivo. Quindi sì, è davvero stato ridisegnato.
Ardee Aram,

Risposte:


23
wp_set_password( $password, $user_id );

Vedi riferimento per i dettagli.


1
Ho votato essenzialmente perché questo si traduce in una query sql singola. Eccellente, se la password è, tutto ciò che vuoi aggiornare. wp_update_userrisulta in esecuzione circa 14 query.
Giovanni,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.