
How to Save and Show Last Login Date and Time of Users in WordPress
- December 2, 2016
- Leave a comment
At times, you may need the functionality of showing last login date and time of users on WordPress Dashboard. As WordPress provide functions to get and set last login date and time, so you can easily save user’s last login date and time.
To achieve this functionality, you can use the following code in your Theme‘s functions.php file:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// set the last login date add_action('wp_login', 'pt_set_last_login', 0, 2); function pt_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_user_meta( $user->ID, '_last_login', $time ); } else { update_user_meta( $user->ID, '_last_login_prev', $last_login ); update_user_meta( $user->ID, '_last_login', $time ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// get last login date function pt_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_user_meta( $user_id, '_last_login', $time ); $last_login = $last_login['_last_login'][0]; } return $last_login; } |
Additionally, you can display current login date/time and the last login date/time by using the following code:
1 2 3 4 5 |
// show last login date global $current_user; get_currentuserinfo(); echo '<p>Previous: Login date: '. date("Y-m-d h:m:s", pt_get_last_login ($current_user->ID, true)) . '</p>'; echo '<p>Current: Login date: ' . date("Y-m-d h:m:s", pt_get_last_login($current_user->ID)) . '</p>'; |
Note: Just by adding true in pt_get_last_login($current_user->ID, true)), you can show the previous login date to your users.
In case if you want to display days since last login as compared to the current login date, use the following code:
1 2 3 4 5 6 7 |
// how many days since last login global $current_user; get_currentuserinfo(); $now = time(); $last_login = pt_get_last_login($current_user->ID, true); $datediff = $now - $last_login; echo '<p>Days since last login: ' . floor($datediff/(60*60*24)) . '</p>'; |
User Comments