Это снова я и снова моя функция, без которой вам никак не выжить.
В предыдущей статье я описал как через 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)