我正在寻找一种方法来限制我的用户一次最多打开一页。我怎样才能在不手动检查用户ID的情况下获得它,并构建一个插件来检查该用户是否已经在线?
我的目标是拒绝用户从两个位置(例如PC和平板电脑)同时连接到我的网站。
我正在寻找一种方法来限制我的用户一次最多打开一页。我怎样才能在不手动检查用户ID的情况下获得它,并构建一个插件来检查该用户是否已经在线?
我的目标是拒绝用户从两个位置(例如PC和平板电脑)同时连接到我的网站。
没有万无一失的方法可以做到这一点,我要指出的是,如果您尝试这样做,您将无法缓存页面以提高性能
为此,您的所有浏览器选项卡都需要交叉通信。这在浏览器之间不起作用,或者如果JS失败,或者JS被关闭。也有可能每个选项卡都会相互检测,并且所有选项卡都会锁定。浏览器对此的支持将受到限制。它不会是基于WordPress的解决方案
$sessions = wp_get_all_sessions();
if ( count( $sessions ) > 1 ) {
// more than 1 session, logout somewhere else to resume
}
请注意:如果您的站点不是https,则用户必须登录。任何人都可以窃取cookie并共享会话。用户可以从开发工具中复制粘贴cookie并将其插入其他设备上的浏览器中。用户到达页面后,无需执行任何操作即可停止此操作。他们可以在其他选项卡中注销并在其他设备上打开该页面,给他们一个页面,但在两台设备上,一个关于IP跟踪的注释,这将不起作用,并且会产生高度不可预测的结果。
例如,NAT使本地网络上的所有内容共享一个IP。就像代理或VPN一样。ISP也在试验或使用CGNAT,因此数百万用户可能共享IPv4地址的一小部分,从而导致不可预测的结果。
您还可以锁定拴在一起或使用手机的人。当他们在手机桅杆上移动时,他们的IP可能会改变,从而触发你正在构建的多屏幕检测系统。
在我的项目中,我想创建一个新的菜单位置,它实际上是“用户”页面的副本,但需要一些额外的过滤器/修改。例如,我需要在用户上方有另一个名为“Admins”的菜单位置,它将显示完全相同的结构化页面,但只有Admin用户。这是为了给我的客户带来更好/更简单的用户体验。我的问题是如何做到这一点?我知道有些函数add_menu_page 但是像这样使用它们(users.php 作为标识符):add_menu_page( \'custom menu title\', \'custom menu\', \'users.p