Wordpress发送用户';s密码


Wordpress Send User's Password

我创建了一个函数,可以让人们通过电子邮件输入注册的电子邮件地址来获得密码。但由于某些原因,wordpress不会发送任何电子邮件或显示任何错误,例如,如果用户数据库中未识别电子邮件:

 function wp_user_password($user_id) {
     function get_userdata($user_id) {
         return get_user_by('email', $_REQUEST['email']);
     }
     $user = get_userdata($user_id);
     $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
     $message = sprintf(__('Your registration details:'), $blogname)."'r'n'r'n";
     $message. = sprintf(__('E-mail: %s'), $user - > user_email)."'r'n";
     $message. = sprintf(__('Password: %s'), $plaintext_pass)."'r'n";
     @wp_mail(get_option('admin_email'), sprintf(__('Requested Registration Details'), $blogname), $message);
     if (empty($plaintext_pass)) return;
     $message = sprintf(__('Username: %s'), $user - > user_login)."'r'n";
     $message. = sprintf(__('Password: %s'), $plaintext_pass)."'r'n";
     wp_mail($user - > user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);
 }
 $this - > output(1, 'Email sent successfully');

如果你能帮我修改上面的代码,我将不胜感激。非常感谢。

您在这里试图实现的向用户发送现有密码的目标似乎是不可行的。

Wordpress在用户注册时对每个用户的密码进行加密,并将其存储在数据库中。加密是一种方式,因此密码永远无法恢复。

代码问题:

~这里的$user_id有什么用?

function get_userdata($user_id) {
   return get_user_by('email', $_REQUEST['email']);
}

~$plaintext_pass未初始化,所以下面的语句将始终为true

if (empty($plaintext_pass)) return;

如果您正在尝试创建忘记密码功能,那么您可以使用现有的wordpress功能