加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > wordpress > 正文

WordPress 禁止多人同时登录一个账号

发布时间:2020-12-14 14:28:24 所属栏目:wordpress 来源:网络整理
导读:由站长 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。 对于会员制的网站,尽可能避免多人同时登录一个会员账号应该是比较需要的,此前已经分享过 Prevent Concurrent Logins 和 Wp Single Login 两个插件,

以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考

对于会员制的网站,尽可能避免多人同时登录一个会员账号应该是比较需要的,此前已经分享过 Prevent Concurrent Logins 和 Wp Single Login 两个插件,都可以满足需求,只是这两个插件很久没有更新了,不知道和新版的 WP 兼容如何,今天再推荐一个类似插件 Loggedin,和之前两个不太一样的是,它支持设置最大活跃登录数,也就是一个账号允许多少个客户端同时登录,还可以通过钩子排除掉一些用和用户角色。已测试兼容 wordpress 5.0+ ,Loggedin 使用很简单,直接在后台插件安装界面搜索 Loggedin 即可在线安装,或者到官方下载 https://wordpress.org/plugins/loggedin/,启用插件后,在 设置 – 常规 界面,就可以看到设置选项:



一旦有多个人(客户端)登录同一个账号,超过了设定的活跃登录数,就会出现如下提示:



已经该插件汉化,点击下载简体中文包,解压后将里面的文件上传到 wp-content/languages/plugins 目录即可生效,同时避免插件升级时丢失语言。下面分享下官方提供的排除用户和用户角色的代码示例,按照需求修改好代码,然后添加到主题的 functions.php 文件即可。

排除用户

//排除某些用户,不受最大活跃登录数限制

function f_loggedin_bypass_users( $bypass,$user_id ) {

?

// 在 array( ) 中输入用户id,多个id用英文逗号隔开

$allowed_users = array( 1,2,3,4,5 );

return in_array( $user_id,$allowed_users );

?

}

?

add_filter( 'loggedin_bypass','f_loggedin_bypass_users',10,2 );

排除角色

//排除某些用户角色,不受最大活跃登录数限制

function f_loggedin_bypass_roles( $prevent,$user_id ) {

?

// 在 array( ) 中输入用角色名,多个用户角色使用英文逗号隔开

$allowed_roles = array( 'administrator','editor' );

$user = get_user_by( 'id',$user_id );

?

$roles = ! empty( $user->roles ) ? $user->roles : array();

?

return ! empty( array_intersect( $roles,$allowed_roles ) );

?

}

?

add_filter( 'loggedin_bypass','f_loggedin_bypass_roles',2 );

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读