记录点滴
品味人生

DUX主题修复绕开注册限制问题

当我们想关闭wordpress注册功能时,可以使用仪表盘->设置->常规->取消勾选 任何人可以注册的方法,但是一些wordpress主题(如DUX)提供了独立的会员中心页面,独立实现了包括注册登录找回密码等功能,且未判断是否在wordpress仪表盘中设置禁止注册,存在绕开注册限制的风险,下面以DUX主题为例,谈一下修复方法。

DUX主题中,如果开启了会员中心,wordpress首页会添加登录按钮,并调用独立的登录/注册浮窗,具体代码位于action/log.php中,贴上部分代码:

switch ($ui['action']) {
    case 'signin':
        if( is_user_logged_in() ) {
            print_r(json_encode(array('error'=>1, 'msg'=>'你已经登录')));
            exit;
        }
       //other code

    case 'signup':
        if( is_user_logged_in() ) {
            print_r(json_encode(array('error'=>1, 'msg'=>'你已经登录')));
            exit;
        }
       //other code

可以看到上面代码中针对登录注册的场景中进行了一系列判断,如是否登录、用户名密码是否错误、注册时用户是否已存在等等,但是并没有在注册时针对wordpress是否关闭注册做判断,所以我们只需要在case 'signup'下增加判断即可,这里使用wordpress内置函数get_option判断:

switch ($ui['action']) {
    case 'signin':
        if( is_user_logged_in() ) {
            print_r(json_encode(array('error'=>1, 'msg'=>'你已经登录')));
            exit;
        }
       //other code

    case 'signup':
        if( is_user_logged_in() ) {
            print_r(json_encode(array('error'=>1, 'msg'=>'你已经登录')));
            exit;
        }
        // check if can register
        if( !get_option('users_can_register') ) {
            print_r(json_encode(array('error'=>1, 'msg'=>'该站点未开放注册')));
            exit;
        }
       //other code

修改后保存即可,再次注册时即可看到浮窗中提示该站点未开放注册了。以上以DUX主题为例,其他主题也可以寻找类似的代码处,增加条件判断就好了。

赞(1) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《DUX主题修复绕开注册限制问题》
文章链接:https://blog.bone4sh.cn/post-7.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏