wordpress - 如何限制用户的会话持续时间
问题描述
这可能吗:wordpress 网站是为孩子们准备的,所以我想限制他们的网站使用。我希望他们能够每天使用网站数小时,比如说 4 小时。4 小时后,他们将退出网站,只能在第二天再次访问。任何人都可以帮忙吗?
解决方案
您可以实现如下逻辑。代码未经测试,但有助于实现逻辑。在加载时,它将检查用户是否登录。如果用户已登录,则检查当前时间和上次登录时间并相应地应用逻辑
add_action('init', 'check_login_logout');
function check_login_logout() {
if(is_user_logged_in()) {
$current_time = time();
$last_login = get_user_meta($user_id, 'last_login', true);
if($last_login) {
if( ($current_time - $last_login <= 24) && $current_time - $last_login > 4 ){
wp_logout();
header("Location: http://fubar.com/login/?logout=0");
exit();
}else if( ($current_time - $last_login > 24){
$last_login = update_user_meta($user_id, 'last_login', $current_time);
}
}else{
$last_login = update_user_meta($user_id, 'last_login', $current_time);
}
}
}
推荐阅读
- rust - 异常返回el1后无法使用堆栈指针
- sql - 为什么 o.id(primary_key) 和 o.account_id(Foreign_key) 之间存在输出差异?
- mysql - 在查询中获取错误的 COUNT 值
- android - 使用多级 IntDef 来描述数据的固定结构以提高效率
- sql - 案例否定列
- text - 在输入中将部分文本更改为不同的颜色
- python-3.x - 使用用户的输入从多个文件中选择代码将在哪个 csv 文件上运行(python pandas)
- python - 如何用 bs4 刮下一个标签
- r - 如果重复多次,如何从另一个数据框中替换数据框中的多个值
- sql - 有人可以帮助我使用 Postgres 中“dbx”库中的“dbxUpsert”函数吗?