最好将更新meta的函数移动到一个钩子中,钩子在AJAX调用期间运行在前端。然后,您就不必费心检查该请求是否是AJAX请求了。init
是一个很好的选择:
function wpse_297026_update_user_activity() {
update_user_meta( get_current_user_id(), \'last_activity\', time() );
}
add_action( \'init\', \'wpse_297026_update_user_activity\' );
get_current_user_id()
退货
0
如果没有用户登录,并且
update_user_meta()
如果您尝试打开meta,则会自动失败(不影响数据库)
user_id
0
, 因此,无需检查用户是否已登录。
尽管如此,您提到要存储上次活动的日期。这需要多精确?我的示例代码将时间存储到秒,但是如果您只需要一天,那么在AJAX请求上更新meta似乎是不必要的。我非常怀疑你会有很多用户一天访问该网站,然后只在两天内发出AJAX请求。