Universal Support Chat (Telegram Tickets)
Universal Support Chat is a WordPress plugin that adds a multilingual live chat widget with Telegram integration, centralized ticket routing, guest-to-account onboarding, and embeddable JS support for connecting multiple websites to one backend.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/asgru/universal-support-chat/archive/refs/heads/main.zipWordPress-плагин для онлайн-чата и тикет-системы с доставкой сообщений в Telegram.
Что умеет
- Плавающий чат-виджет на сайте (гость и авторизованный пользователь).
- Регистрация/вход не обязательны для старта диалога.
- Тикетная модель диалога (история хранится в БД).
- Ответы операторов из Telegram прямо в нужный чат.
- Приглашение гостя на регистрацию из Telegram-команды.
- Внешняя интеграция: один бэкенд WordPress + много сайтов через JS-сниппет.
- Интерфейс на
ru,en,et(в т.ч. ключ языка для embed-скрипта). - Автоответ при отсутствии ответа оператора:
- в рабочее время: через 2 минуты,
- вне рабочего времени: сразу.
Требования
- WordPress 6+
- PHP 8+
- Доступ к REST API (
/wp-json/...) - Telegram Bot Token и Chat ID
Установка
- Скопируйте папку плагина в:
wp-content/plugins/universal-support-chat - Активируйте плагин в WordPress.
- В админке откройте:
Support Chat Telegram
Базовая настройка (в админке)
Раздел Настройки Telegram:
Bot Token— токен бота от BotFather.Chat ID— ID чата/группы, куда приходят обращения.Регистрация клиентов— разрешить/запретить регистрацию в виджете.
После сохранения используйте показанный Webhook URL.
Настройка Telegram Webhook
Пример установки webhook через браузер/CLI:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://your-site.com/wp-json/support-chat/v1/telegram-webhook&secret_token=<WEBHOOK_SECRET>
Проверка статуса webhook:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo
<WEBHOOK_SECRET> берите из админки плагина (поле Webhook Secret).
Как отвечать из Telegram
Используйте только reply на сообщение бота (по reply_to_message).
Чтобы открыть клиенту форму авторизации из чата, отправьте в reply одну из команд:
/auth(открыть форму входа)/login(открыть форму входа)/register(открыть форму регистрации)
Внешние сайты (один backend -> много frontend)
В админке в блоке Внешние сайты (JS интеграция):
- Добавьте сайт (
Название,URL сайта). - Скопируйте сгенерированный сниппет и вставьте на внешний сайт.
Пример сниппета:
<script
src="https://backend-site.com/wp-content/plugins/universal-support-chat/assets/support-chat-embed.js"
data-support-chat-endpoint="https://backend-site.com/wp-json/support-chat/v1"
data-support-chat-key="sc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
data-support-chat-lang="ru"
></script>
Параметры embed-скрипта
data-support-chat-endpoint— endpoint backend WordPress.data-support-chat-key— API ключ внешнего сайта (из админки).data-support-chat-lang— язык интерфейса:ru,en,et.
Авторизация клиента
- Для внешних сайтов используется отдельная таблица клиентов плагина.
- Вход/регистрация происходят без WP-форм входа.
- После авторизации клиент видит свои чаты и может продолжать диалог.
Рабочее время и автоответ
Рабочие часы (Europe/Tallinn):
- Пн–Пт,
09:00–18:00
Логика:
- Если оператор не ответил в течение 2 минут — отправляется автоответ о занятости.
- Если сообщение пришло вне рабочего времени — автоответ отправляется сразу.
Шорткод
Плагин также регистрирует шорткод:
[support_chat]
Его можно использовать для отдельной страницы поддержки.
Локализация
- Text domain:
universal-support-chat - Каталог переводов:
languages/
Поддерживаются ru, en_US, et (PO/MO файлы в комплекте).
Частые проблемы
- Бот отправляет в Telegram, но не читает ответы:
- Проверьте, что webhook установлен именно на текущий URL backend.
- Проверьте
getWebhookInfoи полеlast_error_message.
- Ошибка
origin_not_allowedдля внешнего сайта:
- Убедитесь, что в админке добавлен правильный
URL сайта(домен должен совпадать).
- Ответ из Telegram не попадает в нужный чат:
- Отвечайте через
replyна исходное сообщение бота.
- Не приходят уведомления:
- Проверьте
Bot Token,Chat ID, и что бот добавлен в нужный чат.
Где хранятся данные
Плагин создаёт таблицы (с префиксом WP):
support_chat_ticketssupport_chat_messagessupport_chat_telegram_linkssupport_chat_sitessupport_chat_clients