外贸独立站的底层设计密码WordPress 成品站模板
当前位置:首页>WordPress建站>用户交互>WordPress 禁止多人同时登录一个账号,可设定最大登录数

WordPress 禁止多人同时登录一个账号,可设定最大登录数

对于会员制的网站,尽可能避免多人同时登录一个会员账号应该是比较需要的,倡萌此前已经分享过 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', 10, 2 );

声明:本文为 倡萌@WordPress大学 原创,未经许可,禁止转载或他用!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
欢迎关注WordPress大学公众号 WPDAXUE
WordPress插件用户交互

DW Notifications:WordPress通知插件

2019-1-2 8:07:48

用户交互

使用 Notifications Center 自定义 WordPress 各种通知邮件

2019-1-4 8:31:13

5 条回复 A文章作者 M管理员
  1. lkcom

    好用是好用,然而只对用户名登录有用,并不能限制第三方账号登录,比如QQ……

    • 倡萌

      第三方账号登录本身就对同时登录有一定的限制了,不同的人使用同一个QQ、微信、微博同时登录的可能性极低,而且这些账号一般不可能随随便便进行分享的

  2. laizenghui

    Loggedin 用了这个插件,2分钟左右会话就过期,然后就需要重新登录一次,好烦,好烦,好烦,停用插件后,问题就好了。脑壳痛。

  3. 阿里舞台

    限制用户多台设备登陆的插件还是有用的,在一些会员站点里,会有分享自己的账号给别人使用的情况。使用了这一类的插件后,两人就不可以同时在线了。

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索