Aller au contenu

Actions & Filters

PrimoCRM expose des actions WordPress (événements auxquels vous pouvez réagir) et des filtres (valeurs et registres que vous pouvez modifier). Tous les hooks utilisent le préfixe primocrm_.

PrimoCRM ne contient aucun code payant ni aucune vérification de licence. Tout ce que le module complémentaire Pro ajoute, il l’ajoute par le biais des hooks de cette page. Par conséquent, tout ce que Pro peut faire ici, votre propre plugin peut le faire aussi.

Réagissez à ceux-ci avec add_action.

Hook Arguments Se déclenche lorsque
primocrm_contact_created $contact_id Un contact est créé
primocrm_contact_updated $contact_id, $changed_keys Un contact est mis à jour ($changed_keys sont les noms des champs modifiés)
primocrm_contact_deleted $contact_id, $email Un contact est supprimé (l’adresse est transmise car la ligne a déjà disparu)
primocrm_contact_status_changed $contact_id, $new_status, $old_status Le statut d’un contact change
primocrm_contact_unsubscribed $contact_id Un contact se désabonne
primocrm_contact_resubscribed $contact_id Un contact se réabonne
primocrm_double_optin_confirmed $contact_id Un contact confirme un lien de double opt-in
primocrm_contact_tag_added $contact_id, $tag_id Une étiquette est appliquée
primocrm_contact_tag_removed $contact_id, $tag_id Une étiquette est retirée
primocrm_contact_list_added $contact_id, $list_id Ajouté à une liste
primocrm_contact_list_removed $contact_id, $list_id Retiré d’une liste
Hook Arguments Se déclenche lorsque
primocrm_form_submitted $form_id, $entry_id, $contact_id, $data Un formulaire PrimoCRM est traité
primocrm_email_opened $contact_id, $campaign_id L’ouverture d’un e-mail est suivie
primocrm_email_link_clicked $contact_id, $campaign_id, $url Un lien suivi est cliqué

Ce sont les points d’écriture des écrans de campagne et de modèle. Un plugin qui ajoute ses propres paramètres à une campagne les stocke ici, à côté de la campagne que l’utilisateur vient d’enregistrer.

Hook Arguments Se déclenche lorsque
primocrm_campaign_saved $campaign_id, $request, $is_new Une campagne est créée ou mise à jour ($request est le WP_REST_Request)
primocrm_campaigns_deleted $campaign_ids Une ou plusieurs campagnes sont supprimées
primocrm_email_template_saved $template_id, $request, $is_new Un modèle d’e-mail est créé ou mis à jour
primocrm_health_check_tick aucun La vérification de santé de la file d’attente de cinq minutes s’exécute, un emplacement prêt à l’emploi pour un travail périodique
Hook Arguments Se déclenche lorsque
primocrm_loaded $plugin Lors de l’enregistrement de la route REST. Une négociation de catalogue, et non un hook de démarrage fiable
primocrm_automations_paused_for_handlers $automation_ids Les automatisations ont été suspendues car un déclencheur ou un gestionnaire d’action a disparu
primocrm_automations_resumed_for_handlers $automation_ids Ces automatisations ont repris parce que le gestionnaire est revenu

Exemple :

add_action( 'primocrm_contact_created', function ( $contact_id ) {
error_log( "Nouveau contact PrimoCRM : {$contact_id}" );
} );
add_action( 'primocrm_email_link_clicked', function ( $contact_id, $campaign_id, $url ) {
// Évaluer le contact, notifier un canal, etc.
}, 10, 3 );

Ceux-ci regroupent les éléments extensibles. Des tutoriels complets se trouvent dans Extension de PrimoCRM.

Filtre Valeur Objectif
primocrm_automation_triggers array Enregistrer ou modifier les déclencheurs d’automatisation
primocrm_automation_actions array Enregistrer ou modifier les actions d’automatisation
primocrm_condition_options array (fields, operators) Ajouter des champs et des opérateurs au générateur de conditions
primocrm_form_field_types array (type vers classe) Enregistrer des types de champs de formulaire personnalisés
primocrm_migration_sources array (clé vers source) Enregistrer des fournisseurs de sources de migration
primocrm_smart_code_catalog array Ajouter des entrées au sélecteur de codes intelligents
primocrm_smart_codes $content, $contact, $context Remplacer vos propres codes intelligents lors du rendu d’un e-mail
primocrm_mail_providers array (id vers descripteur) Enregistrer un fournisseur d’e-mails par API, avec les paramètres nécessaires
primocrm_smtp_send $result, $provider, $atts, $settings Effectuer l’envoi pour votre fournisseur. Renvoyez null et PrimoCRM se repliera sur wp_mail
primocrm_email_editors array (type vers descripteur) Enregistrer un éditeur d’e-mails en tant que type de modèle
primocrm_double_optin_sources tableau de clés Quelles sources de contact nécessitent un double opt-in

Une entrée de catalogue sans gestionnaire enregistré est répertoriée comme indisponible plutôt que masquée, veuillez donc lui fournir une chaîne requires_plugin indiquant ce dont elle a besoin. PrimoCRM l’affiche comme “Nécessite X” et refuse de la laisser être choisie.

La charge utile REST pour une campagne ou un modèle, en route vers l’application d’administration. Utilisez ces éléments pour envoyer vos propres champs vers une interface utilisateur que vous avez injectée via les points d’ancrage JavaScript ci-dessous.

Filtre Valeur Objectif
primocrm_campaign_response $campaign, $campaign_id Attacher vos champs à une réponse de campagne unique
primocrm_email_template_response $template, $template_id Attacher vos champs à une réponse de modèle unique
primocrm_pre_send_campaign $taken_over, $campaign, $settings, $request Renvoyer un WP_REST_Response pour prendre entièrement en charge l’envoi. Pour tout le reste, PrimoCRM envoie normalement
primocrm_campaign_sent_elsewhere $handled, $campaign Renvoyer true lorsque votre code a déjà mis cette campagne en file d’attente, afin que le générateur de file d’attente intégré l’ignore
Filtre Valeur Objectif
primocrm_brand_name string Le nom de la marque affiché dans l’administration
primocrm_brand_menu_icon string L’icône du menu d’administration
primocrm_brand array Le descripteur de marque localisé pour l’application
primocrm_show_upsell bool Renvoyer false pour supprimer le bouton “Mettre à niveau” de l’en-tête d’administration. Le module complémentaire Pro fait cela pour vous
primocrm_upgrade_url string Où pointe ce bouton
primocrm_show_reports_menu bool Renvoyer true lorsque vous ajoutez un onglet via primocrm.reports.tabs, afin que la barre latérale WordPress liste Rapports. Désactivé par défaut, car sans onglet, l’écran n’a rien à afficher. Le module complémentaire Pro fait cela pour vous
Filtre Valeur Objectif
primocrm_send_batch_size int Nombre d’e-mails par lot de traitement de campagne
primocrm_send_rate_per_hour int Limitation du débit d’envoi des campagnes
primocrm_automation_batch_limit int Nombre de lignes par lot de traitement d’automatisation
primocrm_email_body_retention_days int Durée de conservation des corps d’e-mails générés
primocrm_async_automation_delivery bool Activer/désactiver la livraison asynchrone des e-mails d’automatisation
primocrm_auto_create_contact_status $status, $source Statut des contacts créés automatiquement par les déclencheurs ou la synchronisation des utilisateurs
primocrm_require_postal_address bool Indique si une adresse postale est requise avant qu’une campagne puisse être envoyée
primocrm_trust_proxy_headers bool Indique s’il faut faire confiance aux en-têtes proxy pour l’adresse IP de l’expéditeur sur les formulaires
primocrm_migration_step_budget float (secondes, par défaut 10) Durée pendant laquelle une requête d’importation ou de migration peut s’exécuter avant de passer la main et de laisser la requête suivante continuer

L’application d’administration est une application monopage React, et ces filtres wp.hooks permettent à un autre plugin d’intégrer sa propre interface utilisateur. Il n’y a pas de pages de module complémentaire autonomes.

Chaque filtre renvoie des descripteurs avec un rappel mount, et non des éléments React : l’application et votre plugin pouvant exécuter des versions de React différentes, PrimoCRM vous fournit un nœud DOM dans lequel vous effectuez vous-même le rendu.

Filtre Objectif
primocrm.settings.tabs Ajouter un onglet à l’écran des Paramètres
primocrm.reports.tabs Ajouter un onglet aux Rapports. L’écran des Rapports et son élément de menu d’application n’existent que tant qu’un élément en a enregistré un ; pour l’entrée de la barre latérale WordPress, renvoyez également true depuis primocrm_show_reports_menu
primocrm.campaigns.rowActions Ajouter une action à une ligne de campagne
primocrm.campaignCreate.sections Ajouter une section à une étape numérotée de l’assistant de campagne
primocrm.campaignDetails.panels Ajouter un panneau à l’écran de détail de la campagne
primocrm.emailEditor.init Intégrer votre éditeur dans le conteneur que PrimoCRM génère pour votre type de modèle
primocrm.emailEditor.destroy Supprimer à nouveau cet éditeur