1. <div id="11111"></div>

    1. <div id="11111"></div>

      1. <div id="11111"></div>

        WordPress自定义用户注册页面插件

        日期: 标签:WordPress插件 483 条留言
        如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我
        文章目录

        如果您是想添加前台注册功能,可以参考:WordPress添加前台注册功能

        如果您需要用户注册时填写手机号,可以用这个插件:Ludou Phone Register

        如果你的WordPress开放后台注册的话,可能会遇到一个问题,那就是发送email的问题。用户注册时使用Email给他发送密码的目的是验证用户输入的Email的有效性,但是如果你的主机不支持发送Email,那么其他人就无法在你的WordPress站点注册。之前也有很多教程教你如何解决这个问题,解决方法是修改WordPress的源文件,让用户注册后直接给他显示密码,而不是给他发送Email,这样问题是解决了,但是每次WordPress升级后,又要重新修改,以现在WordPress的升级速度也够你受得了!

        现在我写了一个WordPress插件,通过修改后台的注册表单,让用户注册时自行填写密码,不用去Email接收密码,管理员也不用担心WordPress升级后带来的影响,同时这个插件支持用户自行选择他需要注册的用户角色。具体演示见下图 :

        WordPress后台注册表单

        插件使用

        下载插件压缩包,解压后上传至WordPress插件目录下,即/wp-content/plugins/,到WordPress后台激活插件Ludou Custom User Register即可,你的后台注册表单就已经像上图的一样了。该插件只针对WordPress单站点,开启多站点功能,本插件无效。

        如果你想让用户注册成功后自动登录,并跳转到指定页面,可以参考这篇文章:WordPress用户注册成功后跳转到指定页面

        本段内容针对1.0版本有效--->> 如果你是个"插件控",总想将插件数量控制在一定范围内,但是又需要插件的功能,那就用文本编辑器打开ludou-custom-register.php,将里面的php代码全部复制到主题目录下的functions.php即可,实现的功能是完全一样的(现在你应该醒悟,那些所谓的 "免插件实现**功能" 以及 "纯代码实现**功能",其实就是插件)。

        这个插件支持用户注册时选择自己的角色,可选订阅者和投稿者,如果你不想让用户注册时选择身份,请用文本编辑器打开ludou-custom-register.php,搜索并删除以下代码:

        <p>
        	<label>用户身份:
        		<select name="user_role" id="user_role">
        			<option value="subscriber" <?php if($_POST['user_role'] == 'subscriber') echo 'selected="selected"';?>>订阅者</option>
        			<option value="contributor" <?php if($_POST['user_role'] == 'contributor') echo 'selected="selected"';?>>投稿者</option>
        		</select>
        	</label>
        </p>

        再删除以下PHP代码:

        if($_POST['user_role'] != 'contributor' && $_POST['user_role'] != 'subscriber')
            $errors->add('role_error', "<strong>错误</strong>:不存在的用户身份");
        
        及
        
        $userdata['role'] = $_POST['user_role'];

        2.0版本添加了验证码功能,增强了反恶意注册的功能。如果你不需要这个功能,可以用文本编辑器打开ludou-custom-register.php,删除以下代码:

        <p>
        	<label>验证码:<br />
        		<input id="CAPTCHA" style="width:110px;*float:left;" class="input" type="text" tabindex="24" size="10" value="" name="captcha_code" />
        		看不清?<a href="javascript:void(0)" onclick="document.getElementById('captcha_img').src='<?php echo constant("LCR_PLUGIN_URL"); ?>/captcha/captcha.php?'+Math.random();document.getElementById('CAPTCHA').focus();return false;">点击更换</a>
        	</label>
        </p>

        以及以下代码:

        	if(empty($_POST['captcha_code'])
        		|| empty($_SESSION['ludou_lcr_secretword'])
        		|| (trim(strtolower($_POST['captcha_code'])) != $_SESSION['ludou_lcr_secretword'])
        		) {
        		$errors->add('captcha_spam', "<strong>错误</strong>:验证码不正确");
        	}
        	unset($_SESSION['ludou_lcr_secretword']);

        同时删除整个captcha文件夹。

        如果出现,点击注册后等待很长时间没反应,最后出现504错误,可以检查一下主机的邮件功能是否可以正常使用,具体见:韩世麟网友的留言。

        2.0以后版本可以参考2.0版的代码进行修改或删除。

        更新记录

        1.0版本 2011年03月25日
        * 首个版本

        2.0版本 2011年04月25日
        * 去除注册后首次登陆,要求修改默认密码的提示
        * 添加验证码功能,增强防恶意注册能力
        * 改进了部分HTML代码

        2.0.1版本 2011年05月24日
        * 改进了部分HTML和PHP代码
        * 添加了部分代码注释

        2.0.3版本 2012年09月22日
        * 2.0.1版不带验证码和选择用户角色的版本,没有验证码同样可以防恶意注册功能
        * 第90行代码中的60,为前后两次注册的时间间隔秒数,用于防恶意注册,可酌情修改

        2.1.1版本 2013年01月27日
        * 2.0.1版基础上增加了用户注册时,须填写昵称的功能
        * 验证码改为5-6位的随机字母,改善用户体验

        3.0版本 2015年12月29日
        * WordPress 4.4中,解决中文用户名注册成功后,数据库users表中user_nicename一栏为空的问题

        == 2017年4月5日 ==
        * 所有版本均已去除 "密码将通过电子邮件发送给您" 和 "注册成功!请查收邮件" 字样,避免对注册用户的误导!

        == 2017年9月16日 ==
        * 所有版本添加了防CSRF跨站攻击代码

        插件下载

        -- 完 --

        本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
        原文出处:露兜博客 http://www.szeverich.net.cn/wordpress-ludou-custom-user-register.html
        露兜
        kaapass@outlook.com  QQ 825533758

        业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

        483 条留言

        点此留言
        1 8 9 10 265
        1. smwlblog

          很好,用了邀请码注册,所以把验证码删除了,身份选择也删除了,我就是想要注册时自己填密码的,这个满足需求了。另外用了你的Login to view all,也是极好的

        2. 郝远

          大神,验证码刷不出来是为啥

        3. yezi

          启用插件后,主页的页眉会下拉一点,影响整个美观,怎么解决?

          • 露兜

            @yezi 本地测试了一下并没有出现你说的问题。
            根据以往的经验,这个顶部出现空白条可能是WordPress的顶部工具条,可以在后台 – 用户 – 我的个人资料中,去除勾选"在浏览站点时显示工具栏"

        4. Lxns

          这玩意3.0按照要求改了就出错

        5. 余水

          大佬,请问如何实现填写邮箱时,验证邮箱是否有效?因为即使填写了错误邮箱,也会显示注册成功

        6. 长青

          额 为啥没有权限下载

          • 露兜

            @长青 请直接单击页面中的下载链接进行下载

        7. Hi斌

          路过感谢!

        8. 5280bt

          WordPress4.91 用3.0 注册不跳转一直卡在注册页面,不过注册已经成功

        9. wenjinyu

          wordpress 4.9.2安装之后,只要注册都提示恶意注册,请问是恶意注册行为是怎么鉴定出来的

        10. Aerry

          老大,链接挂了麻烦补一下(跪求)

        11. 大片网

          用了2年了这个插件,最近发现注册和找回密码时,用户收不到邮件了,怎么办?插件问题?还是空间问题?求大神帮忙

        12. 大片网

          已经问了主机供应商了,是他们关闭了邮件服务端口。

        13. 大伟

          老板 我添加插件安装后启用了没反应,要怎么搞啊

        14. maks

          WordPress4.98 用3.0 注册不跳转一直卡在注册页面,不过注册已经成功,后台用户可见

          • 露兜

            @maks 5.0版测试没有问题,看看是不是开了其他插件冲突了。

        15. 骑自行车做网站

          这个能在其他主题 下用么?

        16. 圈圈

          我wp是最新版5.0,试了下这个插件很不错,注册成功后直接收到两封邮件,修改密码通知邮件和账号密码邮件,都是正常的邮件,只是找回密码时,邮件被认为是垃圾邮件被收件到垃圾邮件中了,是不是因为wp发送给用户的重置密码链接太敏感,让邮箱当做垃圾邮件了?

        17. 木子李呀

          露兜大大,我想问下我把这个插件里昵称跟验证码的php函数还有表单复制放到了你之前发的教程《自定义前台登录页面》里,测试后发现验证码输入错的,或者昵称留空不填也能提交表单注册成功,想请教下如果想实现需要填昵称还有输入正确的验证码,应该如何做呢?

        18. chan

          站长您好,最新版的wordpess用您这个插件,验证码刷不出来,能不能修复一下呢?谢谢了

        19. nzh

          你好!如果用别的登录页面美化插件的话,您的这个插件的防跨站攻击好像太sensitive了,所有注册都会提示请勿恶意注册。

          • 露兜

            @nzh 其他插件会引起冲突,这是我的插件无法控制的,我也没法预测人家的插件怎么写。

        20. 小学生

          注册的时候会发给我两封邮件,这该怎么解决?

        21. 天行

          大前端dux主题自带的注册时弹出式的,怎么添加上注册输入密码和验证码呢,可以付费求助哈

        1 8 9 10

        发表留言

        可以挣钱的游戏 622| 99| 633| 944| 487| 10| 927| 352| 132| 911| 612| 688| 225| 623| 818| 934| 728| 299| 251| 53| 33| 98| 741| 780| 983| 286| 884| 260| 17| 406| 400| 696| 258| 878| 466| 474|