如何检查用户上次访问(活动)网站的时间

时间:2015-09-03 14:05:42

标签: php wordpress wordpress-plugin

一直在寻找解决方案几个小时但没有找到解决方案 我试过使用以下代码

[
    ("hello", "1");
    ("hello", "2");
    ("hello", "3");
    ("hello", "4");
    ("hello2", "2");
    ("hello2", "5");
    ("hello2", "3");
    ("hello2", "9");
    ("hello3", "1");
    ("hello3", "12");
    ("hello3", "35");
    ("hello3", "46")
]

但我发现wp_login动作挂钩仅在用户手动登录时触发(写入用户名和密码并单击登录),如果他自动登录则不会触发...

我尝试过的另一件事是这段代码

function user_last_login( $user_login, $user ){
update_user_meta( $user->ID, '_last_login', time() );
}
add_action( 'wp_login', 'user_last_login', 10, 2 );

但这个人也不做这项工作...... 非常棒,有人可以提供解决这个问题的方法

2 个答案:

答案 0 :(得分:0)

function user_last_login( $user_login, $user ){
    update_user_meta( $user->ID, '_last_login', time() );
}
add_action( 'wp_login', 'user_last_login', 10, 2 );

对于您尝试的上述功能,您必须在需要最后登录值的位置使用以下行。

get_user_meta( $user->ID, '_last_login', true );

答案 1 :(得分:0)

由于您需要时间戳来更新每次用户访问页面(而不仅仅是在他们登录时),wp_login挂钩显然不起作用。相反,您可以挂钩init,它在每个页面加载时运行:

// Update time stamp
function set_user_last_active() {
    if ( is_user_logged_in() ) {
        update_user_meta( get_current_user_id(), '_last_login', time() );
    }
}
add_action( 'init', 'set_user_last_active' );

然后您可以使用以下方式获取时间戳:

get_user_meta( get_current_user_id(), '_last_login', true );