陈德馨

WordPress注册时不发邮件,直接显示密码

790人参与 |分类: 站长百科|时间:2012年02月18日 14:52

相信现在很多用wordpress的博友都已经升到最新版本的wordpress3.7了,不知道大家发现没有,从wordpress3.7开始没有register_new_user函数了,但是对于还没有升级到wordpress3.7版本的朋友,就有个问题了。那就是wordpress注册用户的密码问题。

熟悉wordpress的博友应该都知道WordPress的用户注册机制是:填写用户名、邮箱,由WordPress生成随机密码,并发送到用户注册时填写的邮箱地址。但如果您的服务器并没有配置邮件服务,或者由于邮件运行商的反垃圾邮件功能等原因,导致注册之后收不到WordPress发送的密码邮件,无法完成注册。这样的话很不方便,尤其是用wp做cms站的,很不方便,所以今天这里陈德馨分享一个解决这个问题的方法:让WordPress注册时不发邮件,直接显示密码。

找到WordPress根目录下的 wp-login.php。

第一步:找到下面这句,位于 register_new_user 函数中。用于注册成功后发送通知。找到后把它注释掉。

wp_new_user_notification($user_id, $user_pass);

并在上面这句的下一行加上两句:

setcookie(“u”, $user_login);
setcookie(“user_pass”, $user_pass);

目的是把注册时填写的用户名,以及wordpress随机生成的密码写入cookies,以便在后面调用。

第二步:找到下面这句

$errors->add(‘registered’, __(‘Registration complete. Please check your e-mail.’), ‘message’);

把它替换为

$errors->add(‘registered’, __(‘ ^__^ 注册成功!
用户名:’.$_COOKIE["u"].’
密码:’.$_COOKIE["user_pass"].’
(登录后自行修改成您便于记忆的密码)’), ‘message’);

如果编码出现了问题用这里的方法去转化一下编码,可以按照下面的方法解决。

在 wp-login.php文件的开始写这两行:

$file=”恭喜您注册成功,登录后请自行修改密码,您的登录密码是:”;
$text = mb_convert_encoding(“$file”, “utf-8″, “gbk”);

还是找到

wp_new_user_notification($user_id, $user_pass);

这句注销了他

然后再把

$errors->add(‘registered’, __(‘Registration complete. Please check your e-mail.’), ‘message’);

替换为

$errors->add(‘registered’, __( $text.$_COOKIE["user_pass"].”), ‘message’);

好了,大功告成。

来源:陈德馨博客(微信/QQ号:35435164),转载请保留出处和链接!

地址:

必填

选填

选填

◎已有 0 人评论,请发表您的观点。