Perfex CRM hooks system. Actions, filters, add_action, add_filter, do_action, apply_filters. Complete hook list by category. Based on official documentation only. Use when user mentions "perfex hooks", "action hook", "filter perfex", "extend perfex".
Descomplicar® Crescimento Digital
1.0.0
70
true
null
/perfex-hooks - Sistema de Hooks Perfex CRM
Sistema de extensibilidade via actions e filters. Zero assumptions, zero hallucinations - apenas documentação oficial.
$priority (int): Ordem de execução (menor = primeiro). Default: 10
$accepted_args (int): Número de argumentos. Default: 1
Exemplo:
// No init file do módulo
hooks()->add_action('after_client_added','meu_modulo_after_client_added');functionmeu_modulo_after_client_added($clientId){// Lógica após cliente criado
log_activity('Novo cliente criado: '.$clientId);// Enviar notificação
$CI=&get_instance();$CI->load->model('clients_model');$client=$CI->clients_model->get($clientId);// Integração externa, etc.
}
hooks()->add_filter('before_client_added','meu_modulo_before_client_added');functionmeu_modulo_before_client_added($data){// Modificar dados antes de guardar
if(empty($data['country'])){$data['country']=177;// Portugal
}// OBRIGATÓRIO: retornar dados modificados
return$data;}
Executar Action (criar hooks próprios)
hooks()->do_action($tag,$arg='');
Exemplo:
// No teu módulo, permitir que outros módulos executem código
hooks()->do_action('meu_modulo_after_process',$resultId);
hooks()->add_action('after_client_added','sync_to_external_crm');functionsync_to_external_crm($clientId){$CI=&get_instance();$CI->load->model('clients_model');$client=$CI->clients_model->get($clientId);// Enviar para API externa
$response=wp_remote_post('https://api.externa.com/customers',['body'=>json_encode(['name'=>$client->company,'email'=>$client->email,'vat'=>$client->vat,])]);log_activity('Cliente sincronizado: '.$clientId);}
2. Validar Dados Antes de Criar Factura
hooks()->add_filter('before_invoice_added','validate_invoice_data');functionvalidate_invoice_data($data){// Forçar data de vencimento mínima 30 dias
if(isset($data['duedate'])){$due=strtotime($data['duedate']);$min=strtotime('+30 days');if($due<$min){$data['duedate']=date('Y-m-d',$min);}}return$data;// OBRIGATÓRIO retornar
}
1. [ ] Hook correcto identificado (action vs filter)
2. [ ] Callback com prefixo único
3. [ ] Número de argumentos correcto
4. [ ] Filter retorna dados (OBRIGATÓRIO)
5. [ ] Try/catch para operações externas
6. [ ] Testado em desenvolvimento
7. [ ] Log de actividade para debug