วิธีการเปลี่ยนรหัสผ่านของผู้ใช้โดยทางโปรแกรม


17

ฉันกำลังพยายามสร้างหน้าโปรไฟล์ที่แตกต่างกันโดยสิ้นเชิง (ไม่ใช่หน้าที่จัดทำโดย Wordpress) เนื่องจากรูปแบบและความรู้สึกของหน้าโปรไฟล์เริ่มต้นนั้นมีชื่อว่า "Wordpress" สำหรับผู้ใช้ ตอนนี้ฉันประสบความสำเร็จในการนำเสนอหน้าเว็บที่สามารถแก้ไขข้อมูลเมตาของผู้ใช้เช่นชื่อนามสกุลเมืองรหัสไปรษณีย์ ฯลฯ

ตอนนี้สิ่งที่ฉันนิ่งงันคือการเปลี่ยนรหัสผ่านของผู้ใช้ มีฟังก์ชั่น wordpress ในตัวหรือไม่ว่า change_user_password ($ user_id, $ new_password)? ฉันประหลาดใจที่ฉันไม่สามารถมองหาสิ่งที่ทำ

แย่ลงมาถึงแย่ที่สุดที่ฉันทำUPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_idแต่ฉันจะประหลาดใจจริงๆถ้าไม่มีฟังก์ชั่นสำหรับอันนี้


1
md5สำหรับรหัสผ่านใน WordPress ถูกคัดค้าน (แต่ยังเข้ากันได้ย้อนหลัง - ครั้งต่อไปที่รหัสผ่านของผู้ใช้จะถูกแฮชและบันทึกใหม่) เป็นการดีกว่าที่จะใช้ API เพื่อให้ใช้รูปแบบการแฮชปัจจุบันและซับซ้อนมากขึ้น
Rarst

ใช่ฉันเดาฉันเช่นกัน รหัสผ่านที่เก็บไว้ในฐานข้อมูลไม่ตรงกับ MD5 กับรหัสผ่านที่เข้ามา ดังนั้นใช่มันถูก rehashed แน่นอน
Ardee Aram

คำตอบ:


23
wp_set_password( $password, $user_id );

ดูการอ้างอิงเพื่อดูรายละเอียด


1
ฉันได้รับการโหวตเป็นหลักเพราะผลลัพธ์นี้ในแบบสอบถาม SQL เดียว ดีมากหากรหัสผ่านคือทั้งหมดที่คุณต้องการอัปเดต wp_update_userผลการค้นหาประมาณ 14 คำสั่งที่ทำงาน
John

11

ง่ายwp_update_user(array('ID' => $userid, 'user_pass' => 'myNeWpaSSword'))จะทำทุกอย่างสำหรับคุณ - (Codex)wp_update_user()

ใน sidenote: คุณรู้จักTheme My Login (Wordpress Plugin)หรือไม่ มันสามารถช่วยให้คุณมีหน้าโปรไฟล์ส่วนหน้า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.