小灰博客--小灰IT技术博客 | sky00.com

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


如果你已经用这方法了,但出现了编码问题直接看最下面就可以了!
声明一点,这个方法只对Wordpress3.7以下版本有效,wordpress3.7开始没有register_new_user函数了,
所有同学都知道这一点,那就是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’);

如果编码出现了问题用这里的方法去转化一下编码:http://www.sky00.com/archives/468.html 当然也可以直接这样写

在 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’);
好了,大功告成。


如果该文章帮到了您,不妨帮忙分享支持下博主!
同时也欢迎各位技术爱好者加入IT技术群(点击即可):70035098 互相交流学习!

分享该文章到:

11条评论

  1. 呵呵说道:

    不错 学习了



发表评论

邮箱地址不会被公开。 必填项已用*标注