Need some help with debugging. I have two function is functions.php One to capture user last 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 );
and second to capture user last visit (in case if is permanently logged in)
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 );
Then I try to display all the user data showing: nickname, date_of_registered (function in plugin), last login and 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 )
);
}
Everything, except last visit work. What could be the problem with last visit??
Thank you for help.
S.
Need some help with debugging. I have two function is functions.php One to capture user last 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 );
and second to capture user last visit (in case if is permanently logged in)
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 );
Then I try to display all the user data showing: nickname, date_of_registered (function in plugin), last login and 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 )
);
}
Everything, except last visit work. What could be the problem with last visit??
Thank you for help.
S.
Share Improve this question asked Dec 9, 2019 at 7:18 Greg SkalaGreg Skala 8110 bronze badges 2- what do you mean by not work last visit ? what returns last_visit ? – Chetan Vaghela Commented Dec 9, 2019 at 7:46
- 50 years, not the time stamp of last visit. – Greg Skala Commented Dec 9, 2019 at 8:25
1 Answer
Reset to default 0When you are using human_time_diff
for convert time to human readable format. your last_visit
meta empty that is why it is return 50 years. so before convert human_time_diff
you have to check value is not empty. use below code to display 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
);
}
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744926269a4601454.html
评论列表(0条)