Bir kullanıcının şifresini programlı olarak değiştirme


17

Varsayılan profil sayfasının düzeni ve hissi kullanıcılar için çok "Wordpress" olduğundan, tamamen farklı bir profil sayfası (Wordpress tarafından sağlanan değil) oluşturmaya çalışıyorum. Şimdi ad, soyadı, şehir, posta kodu gibi kullanıcı meta verilerini değiştirebilen bir sayfa sunabilmeyi başardım.

Şimdi beni şaşırtan şey kullanıcının şifresini değiştirmektir. Herhangi bir yerleşik wordpress işlevi var mı, diyelim change_user_password ($ user_id, $ new_password)? Bunu yapan hiçbir şey arayamayacağım için şaşırdım.

Daha da kötüsü, bir şey yapıyorum UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, ama bunun için bir işlev yoksa gerçekten şaşırırdım.


1
md5WordPress'teki şifreler kullanımdan kaldırılmıştır (ancak yine de geriye dönük olarak uyumludur - bir dahaki sefere kullanıcı oturum açma şifresi yeniden karılacak ve yeniden kaydedilecektir). Mevcut ve daha karmaşık karma şemanın kullanılması için API'den geçmek daha iyidir.
Rarst

Evet, sanırım bu da benim tahminim. Veritabanında saklanan şifreler, MD5 ile gelen şifreyle eşleşmiyor. Yani evet, gerçekten de yeniden yaratıldı.
Ardee Aram

Yanıtlar:


24
wp_set_password( $password, $user_id );

Ayrıntılar için referansa bakın.


1
Ben bu tek sql sorgusu sonuçlanır çünkü ben esas olarak bu oy. Mükemmel, şifre ise, güncellemek istediğiniz her şey. wp_update_useryaklaşık 14 sorgunun çalışmasını sağlar.
John

11

Basit bir wp_update_user(array('ID' => $userid, 'user_pass' => 'myNeWpaSSword'))şey sizin için her şeyi yapacak - wp_update_user()(Kodeks) .

Bir yanda: Girişim Teması'nın (Wordpress Eklentisi) farkında mısınız? Size bir ön uç yan profil sayfası sağlayabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.