---
title: WHMCS
---

# 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 `six` y `twenty-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`](https://dash.captcha.la)

## Instalación

### 1. Instalar el módulo

1. Descarga el último `whmcs-x.y.z.zip` desde las [releases](https://github.com/Captcha-La/captchala-whmcs/releases).
2. Descomprímelo en tu directorio **raíz de WHMCS**. Esto añade `modules/addons/captchala/`.
3. 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:

1. Pega tu **App Key** y tu **App Secret**.
2. Elige un **Widget mode** y un **Theme**.
3. Activa los formularios que quieras proteger.
4. 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`](https://github.com/Captcha-La/captchala-whmcs)
- Issues / solicitudes de funciones: se abren contra el repositorio anterior
- Relacionado: [SDK Web](/es/web-sdk) · [SDK de servidor PHP](/es/sdk/server-php) · [Referencia de la API](/es/api-reference)
