Отслеживание последнего входа и последнего посещения

Я использую следующий код, чтобы отслеживать, когда пользователь в последний раз входит в систему. Я понимаю, что если они проверили параметр « Remember Me , это не будет отслеживать их последний визит .

 // Catch the time they login and save it function set_last_login($login) { $user = get_userdatabylogin($login); update_usermeta( $user->ID, 'last_login', current_time('mysql') ); } add_action('wp_login', 'set_last_login'); // Function to display the time function get_last_login($user_id) { $last_login = get_user_meta($user_id, 'last_login', true); $date_format = get_option('date_format') . ' ' . get_option('time_format'); $the_last_login = mysql2date($date_format, $last_login, false); return $the_last_login; } 

В дополнение к рабочему коду выше для отслеживания входа в систему, я хочу посмотреть, когда пользователь был последним активным, если они уже вошли в систему .

Какие-нибудь советы?

Solutions Collecting From Web of "Отслеживание последнего входа и последнего посещения"

Вы можете создать новую запись для метаданных пользователя и обновить ее на каждой странице администратора.

Поместите следующее в functions.php вашей темы или, возможно, оберните его в плагин:

 function update_last_action_time() { $user = wp_get_current_user(); update_user_meta($user->ID, 'last_action_time', current_time('mysql')); } add_action('admin_init', 'update_last_action_time'); 

Конечно, вы можете усовершенствовать это (и тем самым снизить накладные расходы), ограничив это на определенные страницы, например, только панель.

// Edit : вы должны использовать update_user_meta вместо устаревшего update_usermeta .

// Изменить , снова

Если вы хотите отслеживать пользователей в интерфейсе, поместите этот код в нужный шаблон:

 if (is_user_logged_in()) { $user = wp_get_current_user(); update_user_meta($user->ID, 'last_action_time', current_time('mysql')); } 

Опять же, чтобы снизить накладные расходы, я бы предпочел помещать это в файл footer.php . Я предпочел бы взять home.php (если у вас есть) или проверить конкретные запросы (например, ваша домашняя страница, что означает: home_url() == 'http://'.$_SERVER['SERVER_NAME'] ). Но, как было сказано ранее (значение: ниже;)), накладные расходы, конечно, хорошо, если использовать его, тем не менее, в footer.php .