需要调试方面的帮助。我有两个函数是函数。php One捕获用户上次登录
function user_last_login( $user_login, $user ) {
update_user_meta( $user->ID, \'last_login\', time() );
}
add_action( \'wp_login\', \'user_last_login\', 10, 2 );
第二个是捕获用户上次访问(如果是永久登录的)
function user_last_visit() {
if ( is_user_logged_in() ) {
update_user_meta( get_current_user_id(), \'last_visit\', time() );
} else {
return;
}
}
add_action( \'wp_footer\', \'user_last_visit\', 10 );
然后我尝试显示所有的用户数据:昵称,date\\u of\\u registered(插件中的函数),last login和last visit。
$users = get_users();
foreach( $users as $user ) {
$udata = get_userdata( $user->ID );
$user_registered = $udata->user_registered;
$user_last_login = get_user_meta( $user->ID , \'last_login\', true );
$user_last_seen = get_user_meta( $user->ID , \'last_visit\', true );
printf( \'%s OD : %20s : Last Login : %20s : Last seen : %20s <br> \',
$udata->data->display_name,
date( "M Y", strtotime( $user_registered )),
human_time_diff( $user_last_login ),
human_time_diff( $user_last_seen )
);
}
一切,除了上次访问工作。上次就诊可能有什么问题??
谢谢你的帮助。
S
SO网友:Chetan Vaghela
当您使用human_time_diff 用于将时间转换为人类可读的格式。你的last_visit 元空,这就是为什么它是返回50年。所以在转换之前human_time_diff 您必须检查值是否不为空。使用以下代码显示last_login, last_visit.
$users = get_users();
foreach( $users as $user ) {
$udata = get_userdata( $user->ID );
$user_registered = $udata->user_registered;
$user_last_login = get_user_meta( $user->ID , \'last_login\', true );
$user_last_seen = get_user_meta( $user->ID , \'last_visit\', true );
$user_last_login = !empty($user_last_login) ? human_time_diff($user_last_login) : \'-\';
$user_last_seen = !empty($user_last_seen) ? human_time_diff($user_last_seen) : \'-\';
printf( \'%s OD : %20s : Last Login : %20s : Last seen : %20s <br> \',
$udata->data->display_name,
date( "M Y", strtotime( $user_registered )),
$user_last_login ,
$user_last_seen
);
}