WHMCS
Módulo addon oficial de CaptchaLa para WHMCS. Añade verificación CAPTCHA al área de cliente de WHMCS — inicio de sesión, registro, recuperación de contraseña, formulario de contacto, envío de tickets y checkout del carrito — sin escribir nada de código.
A diferencia de un simple widget con site-key, cada desafío está respaldado por un token de un solo uso emitido por el servidor (anti-replay), y no se carga ningún rastreador de terceros.
Qué cubre
Cada superficie de abajo es un interruptor individual en los ajustes del módulo — activa solo las que quieras proteger.
- Inicio de sesión
- Registro
- Recuperación de contraseña
- Formulario de contacto
- Envío de tickets
- Checkout del carrito
Requisitos
- WHMCS 8.x y 9.x (probado contra el área de cliente 8.3 y 9.0; funciona con los temas
sixytwenty-one, con o sin Friendly URLs) - PHP 8.0+ (WHMCS 9.0 en sí requiere PHP 8.2+)
- Una cuenta de CaptchaLa — obtén tu App Key + App Secret en
dash.captcha.la
Instalación
1. Instalar el módulo
- Descarga el último
whmcs-x.y.z.zipdesde las releases. - Descomprímelo en tu directorio raíz de WHMCS. Esto añade
modules/addons/captchala/. - En la administración de WHMCS, ve a Setup → Addon Modules, busca CaptchaLa y haz clic en Activate.
2. Configurar
Haz clic en Configure y luego:
- Pega tu App Key y tu App Secret.
- Elige un Widget mode y un Theme.
- Activa los formularios que quieras proteger.
- Haz clic en Save Changes.
Abre la página CaptchaLa en el menú lateral de la administración para ejecutar una prueba de conexión en vivo contra el panel.
TIP
Tras activarlo, si el widget no aparece, vuelve a guardar los ajustes del módulo una vez — WHMCS solo registra el hooks.php de un módulo cuando este se (re)activa/guarda.
Configuración
Todos los ajustes están en Setup → Addon Modules → CaptchaLa → Configure.
| Ajuste | Tipo | Por defecto | Descripción |
|---|---|---|---|
| App Key | string | — | Clave pública del panel de CaptchaLa. Obligatoria. |
| App Secret | string | — | Secreto del servidor, usado para emitir y validar tokens. Obligatorio; nunca expuesto al navegador. |
| Widget mode | enum | popup | popup (barra disparadora → desafío a pantalla completa), float (panel inline), embed (casilla inline), bind (invisible, intercepta el envío). |
| Theme | enum | default | Preset de color: default, dark, slate, emerald, amber, rose. |
| Language | string | auto | Código BCP-47 (p. ej. en, zh, de) o auto para seguir al navegador. |
| Protect login | bool | on | Aplica el desafío al inicio de sesión del área de cliente. |
| Protect registration | bool | on | Aplica el desafío al registro de cuentas nuevas. |
| Protect password reset | bool | on | Aplica el desafío al formulario de recuperación de contraseña. |
| Protect contact form | bool | off | Aplica el desafío al formulario de contacto. |
| Protect ticket submission | bool | off | Aplica el desafío al paso final de envío de tickets. |
| Protect cart checkout | bool | off | Aplica el desafío al checkout del carrito. |
| Skip for logged-in users | bool | on | No aplica el desafío a visitantes que ya tienen una sesión de cliente. |
| Failure message | string | — | Mensaje mostrado cuando la verificación falla. |
Cómo funciona
En cada página de formulario protegido, el módulo emite un nuevo token de servidor (sct_) desde el panel, acotado a la acción de ese formulario, y renderiza el widget vinculado a él. Después de que el visitante resuelve el desafío, el SDK escribe un token de paso de un solo uso (pt_) en el formulario. Al enviar, el módulo valida ese pt_ del lado del servidor antes de que WHMCS procese el formulario; los replays y los desajustes de acción se rechazan.
Si el panel está temporalmente inaccesible, el módulo falla en abierto (deja pasar el envío) para que tu área de cliente nunca quede bloqueada por un fallo puntual aguas arriba.
Preguntas frecuentes
¿Es gratuito el módulo?
Sí. El módulo es gratuito. El plan gratuito de CaptchaLa cubre 10.000 verificaciones al mes — los planes de pago solo aplican si necesitas más volumen.
¿Funciona tanto en WHMCS 8 como en 9?
Sí — probado en el área de cliente 8.3 y 9.0, con los temas six y twenty-one, con o sin Friendly URLs.
El widget no aparece.
Vuelve a guardar los ajustes del módulo una vez (Configure → Save Changes). WHMCS solo registra hooks.php cuando el módulo se (re)activa/guarda.
Fuente
- Repositorio del módulo:
github.com/Captcha-La/captchala-whmcs - Issues / solicitudes de funciones: se abren contra el repositorio anterior
- Relacionado: SDK Web · SDK de servidor PHP · Referencia de la API