No WHMCS, durante o processo de finalização do pedido (checkout), alguns campos de endereço podem não ser obrigatórios por padrão. Entre eles o campo do Bairro (address2) pode ficar em branco, gerando problemas fiscais, logísticos ou de cadastro. O Hook abaixo força o preenchimento do bairro diretamente no carrinho de compras e no perfil, impedindo a conclusão do pedido e a alteração do cadastro caso o campo não seja informado.
1. O que o Hook faz?
O código utiliza o hook ClientDetailsValidation, que é executado automaticamente no momento em que o cliente tenta finalizar o pedido no carrinho de compras do WHMCS e ao atualizar os dados quando o cliente já está cadastrado.
2. Funcionamento
- O hook verifica se o campo Bairro (address2) foi preenchido.
- Caso o campo esteja vazio, o processo de finalização do pedido ou alteração do cadastro é interrompido.
- Uma mensagem de erro personalizada é exibida ao cliente, informando que o bairro é obrigatório.
O código também considera variações de template e versão do WHMCS, onde o campo de estado/bairro pode ser enviado como stateinput ou state.
3. Código do Hook
Crie um arquivo chamado validar_bairro_checkout.php e envie para a pasta /includes/hooks do seu WHMCS com o seguinte conteúdo:
function validarBairroObrigatorio($bairro)
{
if (empty(trim((string)$bairro))) {
return ['Você não digitou o seu bairro'];
}
return [];
}
add_hook('ClientDetailsValidation', 0, function ($vars) {
return validarBairroObrigatorio($vars['address2'] ?? '');
});
4. Resultado prático
Após adicionar esse hook:
- O campo Bairro passa a ser efetivamente obrigatório.
- O cliente não consegue finalizar o pedido e nem alterar o cadastro sem preencher essa informação.
- A validação ocorre antes da criação do pedido e da fatura.
- Evita cadastros incompletos e reduz correções manuais posteriores.
Esse hook é especialmente útil para provedores que precisam garantir endereços completos para emissão de notas fiscais, validações antifraude ou integrações externas.
