WP Manifestindependent plugin directory
manifest / i18n / universal-support-chat

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.

by Universal · github.com/asgru/universal-support-chat

0stars
0forks

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.zip

WordPress-плагин для онлайн-чата и тикет-системы с доставкой сообщений в Telegram.

Что умеет

  • Плавающий чат-виджет на сайте (гость и авторизованный пользователь).
  • Регистрация/вход не обязательны для старта диалога.
  • Тикетная модель диалога (история хранится в БД).
  • Ответы операторов из Telegram прямо в нужный чат.
  • Приглашение гостя на регистрацию из Telegram-команды.
  • Внешняя интеграция: один бэкенд WordPress + много сайтов через JS-сниппет.
  • Интерфейс на ru, en, et (в т.ч. ключ языка для embed-скрипта).
  • Автоответ при отсутствии ответа оператора:
    • в рабочее время: через 2 минуты,
    • вне рабочего времени: сразу.

Требования

  • WordPress 6+
  • PHP 8+
  • Доступ к REST API (/wp-json/...)
  • Telegram Bot Token и Chat ID

Установка

  1. Скопируйте папку плагина в: wp-content/plugins/universal-support-chat
  2. Активируйте плагин в WordPress.
  3. В админке откройте: 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 интеграция):

  1. Добавьте сайт (Название, URL сайта).
  2. Скопируйте сгенерированный сниппет и вставьте на внешний сайт.

Пример сниппета:

<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 файлы в комплекте).

Частые проблемы

  1. Бот отправляет в Telegram, но не читает ответы:
  • Проверьте, что webhook установлен именно на текущий URL backend.
  • Проверьте getWebhookInfo и поле last_error_message.
  1. Ошибка origin_not_allowed для внешнего сайта:
  • Убедитесь, что в админке добавлен правильный URL сайта (домен должен совпадать).
  1. Ответ из Telegram не попадает в нужный чат:
  • Отвечайте через reply на исходное сообщение бота.
  1. Не приходят уведомления:
  • Проверьте Bot Token, Chat ID, и что бот добавлен в нужный чат.

Где хранятся данные

Плагин создаёт таблицы (с префиксом WP):

  • support_chat_tickets
  • support_chat_messages
  • support_chat_telegram_links
  • support_chat_sites
  • support_chat_clients