Это снова я и снова моя функция, без которой вам никак не выжить.
В предыдущей статье я описал как через ajax подгружать общий чат wp-recall в модальном окне. Однако что бы это все было красивее я захотел что бы на кнопке "Чат", при клике по которой подгружается чат, отображалось количество пользователей в чате.
Изначально я сделал все одним запросом к базе, но потом решил написать функцию, что бы те кто вообще не бум-бум могли пользоваться ей.
Поместите этот код в functions.php
// $room = комната чата, если ее не указать вернется ошибка. $time = промежуток времени // в минутах, за который считать пользователей в чате. По умолчанию 15 минут. function rcl_chat_online_w87h($room, $time = 15) { if (!$room) return "Укажите комнату чата"; global $wpdb; $in_chat = intval($wpdb->get_var(" SELECT COUNT(*) FROM ".RCL_PREF."chat_users WHERE chat_id IN ( SELECT chat_id FROM ".RCL_PREF."chats WHERE chat_room = '".$room."' ) AND user_activity > date_sub('".current_time('mysql')."', interval '".$time."' minute) ")); return $in_chat; }
Вот и все, теперь в нужном месте используем:
echo rcl_chat_online_w87h("my-chat");
^ это выведет кол-во пользователей онлайн в чате my-chat с последней активностью пользователей 15 минут.
Если вы хотите, например, показать онлайн чата "films" учитывая последнюю активность пользователей в 3 минуты, то используем:
echo rcl_chat_online_w87h("films", 3)
Вот как это у меня:
Примечание: что бы текст отображался как степень, то заключите его в <sup></sup>
Спасибо что делитесь, с нами своими идеями, и воплощениями. 8)