Статус пользователя: "был на сайте", онлайн
-
Приветствую.
Не знаю как лучше реализовать функцию для пользователя что-то вроде «Последний раз был на сайте: » или «Сейчас онлайн».
Фиксировать по времени последней авторизации и по кнопке выход не подойдет.
Почитал, что можно сделать по активности пользователя на сайте и соответственно при каждом обновлении любой страницы обновлять поле update_user_meta.
Чтобы каждый раз при просмотре сайта не обновлять поле, сделал временной интервал при котором, например по прошествии n минут срабатывала функция обновления
вот пример:
<?php if (is_user_logged_in()) { $user = wp_get_current_user(); //текущий пользователь $tekushy_user = get_user_meta( $user->ID, 'last_time', true ); //последнее время обновления текущего $result = date('Y-m-d H:i:s', strtotime($tekushy_user . '+' . '1' . 'minutes')); //сложение последнего обновления + n минут $tekushee_vremy = current_time('mysql'); //текущая дата if ($result < $tekushee_vremy) // если текущее время стало больше чем в $result, то можно обновить снова { update_user_meta($user->ID, 'last_time', $tekushee_vremy); //обновление поля на текущее время } } ?>и вывод
<?php echo 'Был на сайте: '.get_user_meta( $post->post_author, 'last_time', true ); ?>вывод тоже надо еще доделывать в зависимости от условий.
Вот теперь не знаю правильно делаю ил нет. может по другому как-то сделать?
Тема «Статус пользователя: "был на сайте", онлайн» закрыта для новых ответов.