WHMCS
Официальный addon-модуль CaptchaLa для WHMCS. Добавляет проверку CAPTCHA в клиентскую область WHMCS — вход, регистрацию, восстановление пароля, форму обратной связи, отправку тикета и оформление корзины — без написания кода.
В отличие от обычного виджета с site-key, каждый запрос подкреплён серверным одноразовым токеном (защита от повторов), и сторонние трекеры не загружаются.
Что охватывает
Каждая поверхность ниже — отдельный переключатель в настройках модуля, включайте только те, что хотите защитить.
- Вход
- Регистрация
- Восстановление пароля
- Форма обратной связи
- Отправка тикета
- Оформление корзины
Требования
- WHMCS 8.x и 9.x (протестировано на клиентской области 8.3 и 9.0; работает с темами
sixиtwenty-one, с Friendly URLs или без них) - PHP 8.0+ (самой WHMCS 9.0 требуется PHP 8.2+)
- Аккаунт CaptchaLa — получите свои App Key + App Secret на
dash.captcha.la
Установка
1. Установите модуль
- Скачайте последний
whmcs-x.y.z.zipиз раздела releases. - Распакуйте его в корневой каталог WHMCS. Это добавит
modules/addons/captchala/. - В админ-панели WHMCS перейдите в Setup → Addon Modules, найдите CaptchaLa и нажмите Activate.
2. Настройте
Нажмите Configure, затем:
- Вставьте свои App Key и App Secret.
- Выберите Widget mode и Theme.
- Включите формы, которые хотите защитить.
- Нажмите Save Changes.
Откройте страницу CaptchaLa в боковом меню админки, чтобы запустить живой тест соединения с панелью управления.
TIP
После активации, если виджет не появляется, пересохраните настройки модуля один раз — WHMCS регистрирует hooks.php модуля только при (повторной) активации/сохранении.
Конфигурация
Все настройки находятся в Setup → Addon Modules → CaptchaLa → Configure.
| Настройка | Тип | По умолчанию | Описание |
|---|---|---|---|
| App Key | string | — | Публичный ключ из панели управления CaptchaLa. Обязательно. |
| App Secret | string | — | Серверный секрет, используется для выпуска и проверки токенов. Обязательно; никогда не передаётся в браузер. |
| Widget mode | enum | popup | popup (панель-триггер → полноэкранный запрос), float (встроенная панель), embed (встроенный чекбокс), bind (невидимый, перехватывает отправку). |
| Theme | enum | default | Цветовой пресет: default, dark, slate, emerald, amber, rose. |
| Language | string | auto | Код BCP-47 (например, en, zh, de) или auto, чтобы следовать настройкам браузера. |
| Protect login | bool | on | Запрос проверки при входе в клиентскую область. |
| Protect registration | bool | on | Запрос проверки при регистрации нового аккаунта. |
| Protect password reset | bool | on | Запрос проверки на форме восстановления пароля. |
| Protect contact form | bool | off | Запрос проверки на форме обратной связи. |
| Protect ticket submission | bool | off | Запрос проверки на финальном шаге отправки тикета. |
| Protect cart checkout | bool | off | Запрос проверки при оформлении корзины. |
| Skip for logged-in users | bool | on | Не запрашивать проверку у посетителей, у которых уже есть клиентская сессия. |
| Failure message | string | — | Сообщение, отображаемое при неудачной проверке. |
Как это работает
На каждой странице защищённой формы модуль выпускает свежий серверный токен (sct_) из панели управления, привязанный к action этой формы, и рендерит виджет, привязанный к нему. После того как посетитель решает запрос, SDK записывает одноразовый pass-токен (pt_) в форму. При отправке модуль проверяет этот pt_ на сервере до того, как WHMCS обработает форму; повторы и несоответствия action отклоняются.
Если панель управления временно недоступна, модуль fails open (пропускает отправку), чтобы ваша клиентская область никогда не блокировалась из-за сбоя вышестоящего сервиса.
FAQ
Модуль бесплатный?
Да. Модуль бесплатный. Бесплатный план CaptchaLa покрывает 10 000 проверок в месяц — платные планы нужны, только если требуется больший объём.
Работает ли он и с WHMCS 8, и с 9?
Да — протестировано на клиентской области 8.3 и 9.0, с темами six и twenty-one, с Friendly URLs или без них.
Виджет не появляется.
Пересохраните настройки модуля один раз (Configure → Save Changes). WHMCS регистрирует hooks.php только при (повторной) активации/сохранении.
Исходный код
- Репозиторий модуля:
github.com/Captcha-La/captchala-whmcs - Issues / feature-запросы: в репозитории выше
- Связанное: Web SDK · PHP Server SDK · Справочник API