1. Делаем хук на виджет IPS\core\widgets\whosOnline - на функцию render()
2. В начале цикла foreach( $users as $row ) добавляем
$r = get_browser($row['browser'], true);
Дальше на ваш вкус... Функция возвращает массив данных, нужный нам ключ - ['device_type'], там может быть "Mobile Phone", "Mobile Device", "Tablet", "Desktop", "TV Device", "Console", "FonePad", "Ebook Reader", "Car Entertainment System" и "unknown". Добавляем поле $row['device_type'] = 'имя иконки' в зависимости от полученного типа (case, например) . Делаем хук на шаблон виджета, после имени пользователя добавляем нужную fa-иконку через переменную.
3. Идем на сайт browscap.org и качаем файл lite_php_browscap.ini
4. Копируем файл на сервер, например в uploads.
5. В актуальном файле php.ini ищем блок [browscap], раскомментариваем строку ;browscap = extra/browscap.ini (убираем точку с запятой) и меняем путь на наш от корня, напр. browscap = /home/user/site.ru/uploads/lite_php_browscap.ini
6. Перезапускаем php (апач, php-fpm).
7. Создаем task в плагине или cron на ежедневное обновление файла с сайта browscap.org - опять-таки, на ваш вкус. Пример cron скрипта можно найти в комментах на www.php.net/manual/en/function.get-browser.php
Виджет кешированный, для обновления (при отладке) надо постоянно чистить кеш.
Возможно есть и другие методы (со сторонними библиотеками), но этот самый простой и точный, база юзер-агентов всегда актуальна.
Удачи