Cara mengubah kata sandi pengguna secara terprogram

17

Saya mencoba membuat halaman profil yang sama sekali berbeda (bukan yang disediakan oleh Wordpress), karena tata letak dan nuansa halaman profil default terlalu "Wordpress" untuk pengguna. Sekarang saya berhasil menampilkan halaman yang dapat mengubah data meta pengguna seperti nama depan, nama belakang, kota, kode pos, dll.

Sekarang yang membuat saya bingung adalah mengubah kata sandi pengguna. Apakah ada fungsi wordpress bawaan, katakan change_user_password ($ user_id, $ new_password)? Saya terkejut bahwa saya tidak dapat mencari apa pun yang melakukan ini.

Lebih buruk datang ke terburuk saya melakukan UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, tetapi saya akan benar-benar kagum jika tidak ada fungsi untuk yang satu ini.

Ardee Aram
sumber
1
md5untuk kata sandi di WordPress sudah tidak digunakan lagi (tetapi masih kompatibel ke belakang - lain kali kata sandi pengguna akan di-hash dan disimpan kembali). Lebih baik melalui API sehingga skema hashing saat ini dan lebih kompleks digunakan.
Jarang
Ya, saya itu dugaan saya juga. Kata sandi yang disimpan dalam database tidak cocok dengan MD5 dengan kata sandi yang masuk. Jadi ya, ini memang diulang-ulang.
Ardee Aram

Jawaban:

23
wp_set_password( $password, $user_id );

Lihat referensi untuk detailnya.

Jarang
sumber
1
Saya memilih ini pada dasarnya karena ini menghasilkan permintaan sql tunggal. Luar biasa, jika kata sandinya, semua yang ingin Anda perbarui. wp_update_usermenghasilkan sekitar 14 kueri yang berjalan.
John
11

Sederhana wp_update_user(array('ID' => $userid, 'user_pass' => 'myNeWpaSSword'))akan melakukan segalanya untuk Anda - wp_update_user()(Codex) .

Pada catatan sidenote: apakah Anda mengetahui Theme My Login (Wordpress Plugin) ? Ini dapat memberi Anda halaman profil sisi depan.

wyrfel
sumber