User last login and user last visit problem

Need some help with debugging. I have two function is functions.php One to capture user last loginfunction user_last_log

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
Add a comment  | 

1 Answer 1

Reset to default 0

When 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

相关推荐

  • User last login and user last visit problem

    Need some help with debugging. I have two function is functions.php One to capture user last loginfunction user_last_log

    1天前
    50

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信