O WHMCS oferece inúmeras possibilidades de automação, mas uma das ferramentas mais poderosas e flexíveis é o sistema de hooks. Com ele, você pode adicionar funções personalizadas ao WHMCS, modificar comportamentos padrão, integrar recursos externos e automatizar praticamente qualquer tarefa sem alterar o core do sistema.
Neste artigo, você entenderá como os hooks funcionam, onde utilizá-los e verá exemplos de automações úteis para o dia a dia.
O que são Hooks no WHMCS?
Os hooks são pontos de entrada no WHMCS que permitem executar código PHP em ações específicas do sistema.
Eles seguem o conceito de “escutar” determinados eventos, como:
-
Criação de um cliente
-
Geração ou pagamento de fatura
-
Ativação de um serviço
-
Login na área do cliente
-
Envio de tickets
-
Alteração de configurações
Isso permite criar funcionalidades personalizadas sem tocar no núcleo do WHMCS, evitando problemas em atualizações.
Onde adicionar Hooks no WHMCS
Todos os hooks devem ser criados na pasta:
/includes/hooks/
Cada hook deve estar em um arquivo .php separado (ou você pode agrupar vários no mesmo arquivo, se preferir).
Estrutura básica de um Hook
Para criar um hook, você precisa:
-
Escolher o evento
-
Definir a função
-
Registrar com o nome do hook
Exemplo simples:
<?php
add_hook('ClientAdd', 1, function($vars) {
logActivity("Novo cliente criado: ID " . $vars['userid']);});
Tipos de Hooks mais utilizados
Aqui estão alguns dos hooks mais práticos e populares:
1. Hooks de Clientes
Usados para ações relacionadas a clientes.
Exemplos de eventos:
-
ClientAdd -
ClientLogin -
ClientEdit
Automatizações possíveis:
-
Enviar dados para CRM externo
-
Registrar logins suspeitos
-
Criar workflows personalizados
2. Hooks de Faturas e Pagamentos
Perfeitos para cobrança e controle financeiro.
Eventos comuns:
-
InvoiceCreated -
InvoicePaid -
AfterShoppingCartCheckout
Possíveis usos:
-
Enviar notificação externa após pagamento
-
Sincronizar dados com ERP
-
Gerar relatórios automáticos
3. Hooks de Serviços e Produtos
Voltados para automação operacional.
Eventos:
-
AfterModuleCreate -
AfterModuleTerminate -
PreModuleSuspend
Utilidades:
-
Disparar criação de recursos externos
-
Enviar alertas de suspensão
-
Registrar atividades para auditoria
4. Hooks de Tickets de Suporte
Ideal para melhorar o atendimento.
Eventos:
-
TicketOpen -
TicketAddReply
Possibilidades:
-
Categorizar tickets automaticamente
-
Aplicar respostas automáticas inteligentes
-
Encaminhar tickets para equipes específicas
Exemplos práticos de automações com Hooks
1. Enviar notificação ao administrador quando um novo cliente é criado
add_hook('ClientAdd', 1, function($vars) {
sendAdminNotification("Novo cliente cadastrado: " . $vars['userid']);
});
2. Registrar quando uma fatura é paga
add_hook('InvoicePaid', 1, function($vars) {
logActivity("Fatura " . $vars['invoiceid'] . " paga com sucesso.");
});
3. Bloquear ticket contendo palavras proibidas
add_hook('TicketOpen', 1, function($vars) {
$proibidas = ['spam', 'oferta', 'propaganda'];
foreach ($proibidas as $p) {
if (stripos($vars['subject'], $p) !== false) {
return ['abortWithError' => "Ticket não permitido."];
}
}
});
Boas práticas ao usar Hooks no WHMCS
-
Nunca altere arquivos do core
-
Sempre teste em ambiente de desenvolvimento
-
Use logs para depuração (
logActivity) -
Agrupe automações semelhantes em um único arquivo
-
Mantenha o código limpo e documentado
-
Evite hooks pesados que possam afetar o desempenho
Conclusão
Automatizar tarefas com hooks no WHMCS é uma das maneiras mais eficientes de personalizar o sistema e torná-lo mais inteligente. Com alguns trechos de código, você pode integrar ferramentas externas, criar fluxos automáticos, otimizar processos internos e melhorar a experiência do cliente.