我正在创建一个后端功能,用于计算用户在过去2周内的登录会话。
当用户使用wp\\u登录登录时,通过增加自定义用户字段可以很容易地做到这一点:
add_action(\'wp_login\', \'calculate_login_sessions_custom\', 99, 2);
这很好,我能够对它进行编程,这样就不会计算过去两周的登录次数。(客户只想查看过去2周的登录)。
问题是,如果有人注销,我也需要更新这些字段,否则如果有人不重新登录,他们将在过去2周内拥有相同的登录数据(以触发删除旧登录的功能)。
我知道有wp\\u注销,但是如果用户的会话刚刚结束,我可以使用什么?
SO网友:Jacob Peattie
有一个auth_cookie_expired
钩子,但只有当用户使用过期的cookie访问站点时,才会触发。
课程不会以你可能的思维方式“结束”。当用户登录时,他们会得到一个过期的会话令牌。当过期时间过去时,令牌不再有效,但只有在用户访问站点时才会检查令牌。如果用户登录后两周内没有访问,WordPress中不会发生任何情况来注销该用户。这只意味着当他们最终重新访问站点时,他们的令牌将过期,WordPress将要求他们登录以获取新令牌。这是什么时候auth_cookie_expired
已启动。
因此,这回答了您关于会话结束时触发挂钩的问题(TL;DR,没有),但并不能解决您的问题。不幸的是,你的问题没有包含足够的信息来提供帮助(这有点XY Problem, 老实说),但我的建议是记录所有登录,但包括过期日期。然后,当您需要统计或显示活动会话时,只需统计日期未过期的会话。你可以把它和wp_logout
和auth_cookie_expired
钩子完全删除显式结束的会话。