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

创客云

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

  1. /*-----------------------------------------------------------------------------------*/
  2. /* WordPress注册用户填写密码!
  3. /*-----------------------------------------------------------------------------------*/
  4. add_action( 'register_form', 'loper_register_fields' );
  5. function loper_register_fields(){
  6. ?>
  7. <p>
  8. <label><?php _e('密码') ?><br/>
  9. <input name="password" id="password" class="input" value="" size="21" type="password"></label>
  10. </p>
  11. <p>
  12. <label><?php _e('重复密码') ?><br/>
  13. <input name="repeat_password" id="repeat_password" class="input" value="" size="21" type="password"></label>
  14. </p>
  15. <?php }
  16. // 检查密码是否一致!
  17. add_action( 'register_post', 'loper_extra_register_fields', 10, 3 );
  18. function loper_extra_register_fields($login, $email, $errors) {
  19. if ( $_POST['password'] !== $_POST['repeat_password'] ) {
  20. $errors->add( 'passwords_not_matched', "<strong>错误</strong>:密码必须一样" ); }
  21. if ( strlen( $_POST['password'] ) < 6 ) { //输入你的6就是6位数
  22. $errors->add( 'password_too_short', "<strong>错误</strong>:密码必须六位" ); }
  23. }
  24. // 禁止输入空白密码!
  25. add_action( 'user_register', 'loper_extra_fields', 100 );
  26. function loper_extra_fields( $user_id ){
  27. $userdata = array();
  28. $userdata['ID'] = $user_id;
  29. if ( $_POST['password'] !== '' ) {
  30. $userdata['user_pass'] = $_POST['password'];}
  31. $new_user_id = wp_update_user( $userdata );
  32. }

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

本文由 CityMall 整理发布如需转载,请注明出处:https://www.22vd.com/57054.html
云模板

发表评论