WHMCS
Módulo addon oficial da CaptchaLa para WHMCS. Adiciona verificação CAPTCHA à área do cliente do WHMCS — login, cadastro, recuperação de senha, formulário de contato, envio de tickets e checkout do carrinho — sem escrever uma linha de código.
Diferente de um simples widget com site-key, cada desafio é respaldado por um token de uso único emitido pelo servidor (anti-replay), e nenhum rastreador de terceiros é carregado.
O que ele cobre
Cada superfície abaixo é um toggle individual nas configurações do módulo — habilite só as que você quer proteger.
- Login
- Cadastro
- Recuperação de senha
- Formulário de contato
- Envio de tickets
- Checkout do carrinho
Requisitos
- WHMCS 8.x e 9.x (testado na área do cliente 8.3 e 9.0; funciona com os temas
sixetwenty-one, com ou sem Friendly URLs) - PHP 8.0+ (o próprio WHMCS 9.0 exige PHP 8.2+)
- Uma conta CaptchaLa — obtenha sua App Key + App Secret em
dash.captcha.la
Instalação
1. Instale o módulo
- Baixe o
whmcs-x.y.z.zipmais recente nas releases. - Extraia-o no diretório raiz do WHMCS. Isso adiciona
modules/addons/captchala/. - No admin do WHMCS, vá em Setup → Addon Modules, encontre CaptchaLa e clique em Activate.
2. Configure
Clique em Configure e então:
- Cole sua App Key e seu App Secret.
- Escolha um Widget mode e um Theme.
- Ative os formulários que deseja proteger.
- Clique em Save Changes.
Abra a página CaptchaLa no menu lateral do admin para rodar um teste de conexão ao vivo contra o painel.
TIP
Após ativar, se o widget não aparecer, salve as configurações do módulo novamente uma vez — o WHMCS só registra o hooks.php de um módulo quando ele é (re)ativado/salvo.
Configuração
Todas as configurações ficam em Setup → Addon Modules → CaptchaLa → Configure.
| Configuração | Tipo | Padrão | Descrição |
|---|---|---|---|
| App Key | string | — | Chave pública do painel da CaptchaLa. Obrigatória. |
| App Secret | string | — | Segredo do servidor, usado para emitir e validar tokens. Obrigatório; nunca exposto ao navegador. |
| Widget mode | enum | popup | popup (barra disparadora → desafio em tela cheia), float (painel inline), embed (checkbox inline), bind (invisível, intercepta o envio). |
| Theme | enum | default | Preset de cor: default, dark, slate, emerald, amber, rose. |
| Language | string | auto | Código BCP-47 (ex. en, zh, de) ou auto para seguir o navegador. |
| Protect login | bool | on | Aplica o desafio ao login da área do cliente. |
| Protect registration | bool | on | Aplica o desafio ao cadastro de novas contas. |
| Protect password reset | bool | on | Aplica o desafio ao formulário de recuperação de senha. |
| Protect contact form | bool | off | Aplica o desafio ao formulário de contato. |
| Protect ticket submission | bool | off | Aplica o desafio à etapa final de envio de tickets. |
| Protect cart checkout | bool | off | Aplica o desafio ao checkout do carrinho. |
| Skip for logged-in users | bool | on | Não aplica o desafio a visitantes que já têm uma sessão de cliente. |
| Failure message | string | — | Mensagem exibida quando a verificação falha. |
Como funciona
Em cada página de formulário protegido, o módulo emite um novo token de servidor (sct_) do painel, escopado para a action daquele formulário, e renderiza o widget vinculado a ele. Depois que o visitante resolve o desafio, o SDK escreve um token de passe de uso único (pt_) no formulário. No envio, o módulo valida esse pt_ do lado do servidor antes que o WHMCS processe o formulário; replays e divergências de action são rejeitados.
Se o painel estiver temporariamente inacessível, o módulo falha em aberto (deixa o envio passar) para que sua área do cliente nunca fique bloqueada por uma falha pontual upstream.
FAQ
O módulo é gratuito?
Sim. O módulo é gratuito. O plano gratuito da CaptchaLa cobre 10.000 verificações por mês — planos pagos só se aplicam se você precisar de mais volume.
Funciona tanto no WHMCS 8 quanto no 9?
Sim — testado na área do cliente 8.3 e 9.0, com os temas six e twenty-one, com ou sem Friendly URLs.
O widget não aparece.
Salve as configurações do módulo novamente uma vez (Configure → Save Changes). O WHMCS só registra o hooks.php quando o módulo é (re)ativado/salvo.
Código-fonte
- Repositório do módulo:
github.com/Captcha-La/captchala-whmcs - Issues / pedidos de funcionalidade: abertos no repositório acima
- Relacionados: SDK Web · SDK PHP Server · Referência da API