Pular para o conteúdo

Ações e Filtros

O PrimoCRM expõe ações do WordPress (eventos aos quais você pode reagir) e filtros (valores e registros que você pode modificar). Todos os ganchos usam o prefixo primocrm_.

O PrimoCRM em si não inclui nenhum código pago nem verificações de licença. Tudo o que o suplemento Pro adiciona, ele adiciona por meio dos ganchos desta página, portanto, qualquer coisa que o Pro possa fazer aqui, o seu próprio plugin também pode fazer.

Reaja a estes com add_action.

Gancho Argumentos Disparado quando
primocrm_contact_created $contact_id Um contato é criado
primocrm_contact_updated $contact_id, $changed_keys Um contato é atualizado ($changed_keys são os nomes dos campos alterados)
primocrm_contact_deleted $contact_id, $email Um contato é excluído (o endereço é passado porque a linha já foi removida)
primocrm_contact_status_changed $contact_id, $new_status, $old_status O status de um contato muda
primocrm_contact_unsubscribed $contact_id Um contato cancela a inscrição
primocrm_contact_resubscribed $contact_id Um contato se reinscreve
primocrm_double_optin_confirmed $contact_id Um contato confirma um link de opt-in duplo
primocrm_contact_tag_added $contact_id, $tag_id Uma etiqueta é aplicada
primocrm_contact_tag_removed $contact_id, $tag_id Uma etiqueta é removida
primocrm_contact_list_added $contact_id, $list_id Adicionado a uma lista
primocrm_contact_list_removed $contact_id, $list_id Removido de uma lista
Gancho Argumentos Disparado quando
primocrm_form_submitted $form_id, $entry_id, $contact_id, $data Um formulário do PrimoCRM é processado
primocrm_email_opened $contact_id, $campaign_id A abertura de um e-mail é rastreada
primocrm_email_link_clicked $contact_id, $campaign_id, $url Um link rastreado é clicado

Estes representam o lado de escrita das telas de campanha e modelo. Um plugin que adiciona suas próprias configurações a uma campanha as armazena aqui, junto à campanha que o usuário acabou de salvar.

Gancho Argumentos Disparado quando
primocrm_campaign_saved $campaign_id, $request, $is_new Uma campanha é criada ou atualizada ($request é o objeto WP_REST_Request)
primocrm_campaigns_deleted $campaign_ids Uma ou mais campanhas são excluídas
primocrm_email_template_saved $template_id, $request, $is_new Um modelo de e-mail é criado ou atualizado
primocrm_health_check_tick nenhum A verificação de saúde da fila de cinco minutos é executada, um espaço pronto para uso em trabalhos periódicos
Gancho Argumentos Disparado quando
primocrm_loaded $plugin Durante o registro de rotas REST. Uma handshake de catálogo, não um gancho de inicialização confiável
primocrm_automations_paused_for_handlers $automation_ids As automações foram pausadas porque um gatilho ou manipulador de ação desapareceu
primocrm_automations_resumed_for_handlers $automation_ids Essas automações foram retomadas porque o manipulador voltou

Exemplo:

add_action( 'primocrm_contact_created', function ( $contact_id ) {
error_log( "Novo contato no PrimoCRM: {$contact_id}" );
} );
add_action( 'primocrm_email_link_clicked', function ( $contact_id, $campaign_id, $url ) {
// Pontuar o contato, notificar um canal, etc.
}, 10, 3 );

Estes coletam itens extensíveis. Receitas completas estão em Estendendo o PrimoCRM.

Filtro Valor Finalidade
primocrm_automation_triggers array Registrar ou modificar gatilhos de automação
primocrm_automation_actions array Registrar ou modificar ações de automação
primocrm_condition_options array (fields, operators) Adicionar campos e operadores ao construtor de condições
primocrm_form_field_types array (tipo para classe) Registrar tipos de campos de formulário personalizados
primocrm_migration_sources array (chave para origem) Registrar provedores de origem de migração
primocrm_smart_code_catalog array Adicionar entradas ao seletor de códigos inteligentes
primocrm_smart_codes $content, $contact, $context Substituir seus próprios códigos inteligentes enquanto um e-mail é renderizado
primocrm_mail_providers array (id para descritor) Registrar um provedor de e-mail via API, com as configurações necessárias
primocrm_smtp_send $result, $provider, $atts, $settings Realizar o envio para o seu provedor. Retorne null e o PrimoCRM recorrerá ao wp_mail
primocrm_email_editors array (tipo para descritor) Registrar um editor de e-mail como um tipo de modelo
primocrm_double_optin_sources array de chaves Quais origens de contato exigem opt-in duplo

Uma entrada de catálogo sem um manipulador registrado é listada como indisponível em vez de oculta, portanto, forneça uma string requires_plugin nomeando o que ela precisa. O PrimoCRM exibe isso como “Requer X” e recusa a seleção.

O payload REST para uma campanha ou modelo, a caminho do aplicativo administrativo. Use estes para enviar seus próprios campos para uma interface que você injetou por meio das junções de JavaScript abaixo.

Filtro Valor Finalidade
primocrm_campaign_response $campaign, $campaign_id Anexar seus campos a uma resposta de campanha única
primocrm_email_template_response $template, $template_id Anexar seus campos a uma resposta de modelo única
primocrm_pre_send_campaign $taken_over, $campaign, $settings, $request Retornar um WP_REST_Response para assumir o envio completamente. Caso contrário, o PrimoCRM envia normalmente
primocrm_campaign_sent_elsewhere $handled, $campaign Retornar true quando o seu código já enfileirou esta campanha, fazendo com que o construtor de filas nativo a ignore
Filtro Valor Finalidade
primocrm_brand_name string O nome da marca exibido na administração
primocrm_brand_menu_icon string O ícone do menu administrativo
primocrm_brand array O descritor da marca localizado para o aplicativo
primocrm_show_upsell bool Retornar false para remover o botão “Atualizar” do cabeçalho administrativo. O suplemento Pro faz isso para você
primocrm_upgrade_url string Para onde esse botão aponta
primocrm_show_reports_menu bool Retornar true quando você adicionar uma aba por meio de primocrm.reports.tabs, para que a barra lateral do WordPress liste Relatórios. Desativado por padrão, pois sem uma aba a tela não tem nada para exibir. O suplemento Pro faz isso para você
Filtro Valor Finalidade
primocrm_send_batch_size int E-mails por lote do worker de campanha
primocrm_send_rate_per_hour int Limitação de envio de campanhas
primocrm_automation_batch_limit int Linhas por lote do worker de automação
primocrm_email_body_retention_days int Por quanto tempo os corpos de e-mail renderizados são retidos
primocrm_async_automation_delivery bool Alternar a entrega assíncrona de e-mails de automação
primocrm_auto_create_contact_status $status, $source Status para contatos criados automaticamente por gatilhos ou sincronização de usuários
primocrm_require_postal_address bool Se um endereço postal é obrigatório antes que uma campanha possa ser enviada
primocrm_trust_proxy_headers bool Se deve confiar nos cabeçalhos de proxy para o IP de quem envia nos formulários
primocrm_migration_step_budget float (segundos, padrão 10) Quanto tempo uma solicitação de importação ou migração pode trabalhar antes de retornar o controle e a próxima solicitação continuar

O aplicativo administrativo é uma aplicação de página única em React, e esses filtros do wp.hooks são a forma como outro plugin insere sua própria interface dentro dele. Não existem páginas de suplementos independentes.

Cada filtro retorna descritores com um retorno de chamada mount, e não elementos React: o aplicativo e o seu plugin podem estar executando versões diferentes do React, portanto, o PrimoCRM fornece a você um nó DOM para que você faça a renderização por conta própria.

Filtro Finalidade
primocrm.settings.tabs Adicionar uma aba à tela de Configurações
primocrm.reports.tabs Adicionar uma aba a Relatórios. A tela de Relatórios e seu item de menu no aplicativo existem apenas enquanto algo tiver registrado um; para a entrada na barra lateral do WordPress, retorne também true em primocrm_show_reports_menu
primocrm.campaigns.rowActions Adicionar uma ação a uma linha de campanha
primocrm.campaignCreate.sections Adicionar uma seção a uma etapa numerada do assistente de campanha
primocrm.campaignDetails.panels Adicionar um painel à tela de detalhes da campanha
primocrm.emailEditor.init Construir o seu editor dentro do contêiner que o PrimoCRM renderiza para o seu tipo de modelo
primocrm.emailEditor.destroy Desmontar esse editor novamente