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, impedindo a conclusão do pedido caso o campo não seja informado.
1. O que o Hook faz?
O código utiliza o hook ShoppingCartValidateCheckout, que é executado automaticamente no momento em que o cliente tenta finalizar o pedido no carrinho de compras do WHMCS.
2. Funcionamento
Durante o checkout:
- O hook verifica se o campo Bairro (address2) foi preenchido.
- Caso o campo esteja vazio, o processo de finalização do pedido é 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:
add_hook('ShoppingCartValidateCheckout', 1, function($vars) {
if (empty($_REQUEST['address2'])) {
return [
'Você não digitou o seu bairro'
];
}
});
4. Resultado prático
Após adicionar esse hook:
- O campo Bairro passa a ser efetivamente obrigatório no carrinho de compras.
- O cliente não consegue finalizar o pedido 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.
