Home / Thủ Thuật / Wordpress / [WordPress] Cập nhật thời điểm lần cuối đăng nhập của user

[WordPress] Cập nhật thời điểm lần cuối đăng nhập của user

Nếu các bạn muốn nắm giữ thông tin về thời gian đăng nhập cuối cùng của các thành viên (user) hoạt động trên website hay blog của các bạn, bạn có thể sử dung đoạn code mà mình chia sẻ trong bài viết này.

Với đoạn code này, các bạn chỉ việc copy và dán nó vào file functions.php có sẵn trong folder theme mà các bạn đang dùng:

Lưu thông tin


// set the last login date
add_action('wp_login','set_last_login', 0, 2);
function set_last_login($login, $user) {
    $user = get_user_by('login',$login);
    $time = current_time( 'timestamp' );
    $last_login = get_user_meta( $user->ID, '_last_login', 'true' );
    if(!$last_login){
    update_usermeta( $user->ID, '_last_login', $time );
    }else{
    update_usermeta( $user->ID, '_last_login_prev', $last_login );
    update_usermeta( $user->ID, '_last_login', $time );
    }
}
// get last login date
function get_last_login($user_id,$prev=null){
  $last_login = get_user_meta($user_id);
  $time = current_time( 'timestamp' );
  if(isset($last_login['_last_login_prev'][0]) && $prev){
          $last_login = get_user_meta($user_id, '_last_login_prev', 'true' );
  }else if(isset($last_login['_last_login'][0])){
          $last_login = get_user_meta($user_id, '_last_login', 'true' );
  }else{
    update_usermeta( $user_id, '_last_login', $time );
    $last_login = $last_login['_last_login'][0];
  }
  return $last_login;
}

Hiển thị

Để hiển thị thông tin này, các bạn chỉ việc copy đoạn code bên dưới vào vị trí mà các bạn muốn hiển thị.


/ show last login date
 global $current_user;
 get_currentuserinfo();
 echo 'Previous: Login date: ' . date("Y-m-d h:m:s", get_last_login($current_user->ID,true)) . '';
 echo 'Current: Login date: ' . date("Y-m-d h:m:s", get_last_login($current_user->ID)) . '';

Ngoài ra ,các bạn còn có thể so sánh thời gian đăng nhập lần cuối với thời gian hiện tại để lấy ra số ngày đã không online.


// how many days since last login
  global $current_user;
  get_currentuserinfo();
  $now = time();
  $last_login = get_last_login($current_user->ID,true);
  $datediff = $now - $last_login;
  echo 'Days since last login: ' . floor($datediff/(60*60*24)) . ' ';

Chúc các bạn thành công!

About Tạp Chí Tin Học

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Time limit is exhausted. Please reload CAPTCHA.