我创建了一个函数,可以让人们通过电子邮件输入注册的电子邮件地址来获得密码。但由于某些原因,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功能