纯代码实现WordPress注册用户自定义填写密码教程

admin 2020年4月5日10:04:55 评论 321
广告合作

纯代码实现WordPress注册用户自定义填写密码教程

wordpress 注册用户填写密码WordPress 注册时只需要填写用户名和电子邮箱,点击提交后密码由系统产生并通过邮件发给用户,用户用随机密码登陆后要更改密码。这个过程对用户不是十分友好,但确是充分考录安全性的选择,因为注册机不会或者没有足够的资源来接邮件大量注册垃圾用户,而直接填密码等注册方法却很难防范,需要配合验证码之类才好一点。而且很多主机都不支持发送邮件,你是否觉得 WordPress 的注册有点绕弯的感觉,既然用户注册后还要将随机生成的密码更改,为什么不让他们自己填写密码呢?实现这个功能我们今天介绍一直不使用插件,只要只要一串代码搞定的方法!

把以下全部代码丢进模板函数 (functions.php)

注册用户填写密码演示图:

/*-----------------------------------------------------------------------------------*/
/* WordPress注册用户填写密码!
/*-----------------------------------------------------------------------------------*/
add_action( 'register_form', 'loper_register_fields' );
function loper_register_fields(){
?>
<p>
<label><?php _e('密码') ?><br/>
<input name="password" id="password" class="input" value="" size="21" type="password"></label>
</p>
<p>
<label><?php _e('重复密码') ?><br/>
<input name="repeat_password" id="repeat_password" class="input" value="" size="21" type="password"></label>
</p>
<?php }
// 检查密码是否一致!
add_action( 'register_post', 'loper_extra_register_fields', 10, 3 );
function loper_extra_register_fields($login, $email, $errors) {
if ( $_POST['password'] !== $_POST['repeat_password'] ) {
$errors->add( 'passwords_not_matched', "<strong>错误</strong>:密码必须一样" ); }
if ( strlen( $_POST['password'] ) < 6 ) { //输入你的6就是6位数
$errors->add( 'password_too_short', "<strong>错误</strong>:密码必须六位" ); }
}
// 禁止输入空白密码!
add_action( 'user_register', 'loper_extra_fields', 100 );
function loper_extra_fields( $user_id ){
$userdata = array();
$userdata['ID'] = $user_id;
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];}
$new_user_id = wp_update_user( $userdata );
}

以上就是不需要插件实现用户注册时自己设置密码的功能,而不需要邮件接收密码,你可以根据自己的实际情况选择使用上述代码或者安装其他插件实现这个功能。

admin

发表评论

您必须才能发表评论!