HappenBoard et HappenBoard Pro déclenchent des actions et des filtres WordPress aux endroits que vous aurez le plus souvent envie de modifier. On les trouve dans les formulaires d’inscription, les e-mails, le balisage Event, les créneaux de rendez-vous, les imports et ailleurs. Cette page explique où placer votre code et comment se comportent les hooks. Les pages de référence listées à la fin documentent chaque hook avec ses arguments et un exemple.
Où placer votre code
Placez votre code dans une petite extension à vous : un fichier PHP avec un en-tête Plugin Name dans wp-content/plugins/, ou une extension indispensable (must-use) dans wp-content/mu-plugins/. Le functions.php d’un thème enfant fonctionne aussi, avec une limite expliquée plus bas.
Ne modifiez jamais les fichiers de HappenBoard. La mise à jour suivante les remplace et vos changements sont perdus.
Démarrez votre code sur happenboard_loaded
HappenBoard déclenche happenboard_loaded pendant plugins_loaded, une fois que tous ses services ont branché leurs hooks. Enregistrez vos fonctions depuis cette action :
<?php
/**
* Plugin Name: My HappenBoard tweaks
*/
add_action(
'happenboard_loaded',
function (): void {
add_filter( 'happenboard_schema_event', 'my_schema_audience', 10, 2 );
}
);
function my_schema_audience( $schema, $event_id ) {
// Indique que les événements de la catégorie « Kids » visent les enfants.
if ( has_term( 'kids', 'happenboard_category', $event_id ) ) {
$schema['audience'] = array( '@type' => 'Audience', 'audienceType' => 'Children' );
}
return $schema;
}
Se brancher ainsi vous apporte trois garanties :
- Votre code ne s’exécute que si HappenBoard est actif. Si quelqu’un le désactive, l’action ne se déclenche pas et rien ne casse.
- Les classes et fonctions de HappenBoard sont utilisables dans votre fonction.
- HappenBoard Pro démarre depuis la même action, en priorité 10. Utilisez
happenboard_pro_loadedpour le code qui a besoin de Pro.
Les types de contenu, taxonomies et blocs sont enregistrés plus tard, sur init, comme dans toute extension. Hooks cycle de vie de l’extension détaille l’ordre de chargement et les actions de désinstallation.
Dans un thème enfant, laissez happenboard_loaded de côté. Le functions.php d’un thème est chargé après le déclenchement de cette action : une fonction branchée là ne s’exécute jamais. Ajoutez directement vos filtres, et testez did_action( 'happenboard_loaded' ) si vous devez savoir si HappenBoard est actif.
Comment les hooks sont nommés
- Chaque nom de hook commence par
happenboard_. - Les hooks ajoutés par HappenBoard Pro commencent par
happenboard_pro_. Les exceptions gardent des noms plus anciens :happenboard_badges_per_sheet,happenboard_event_submitted,happenboard_stripe_checkout_completed,happenboard_stripe_refundedet les six déclencheurs MailerPress qui commencent parhappenboard_mp_. - Pro déclenche aussi lui-même certains hooks gratuits. Par exemple,
happenboard_rsvp_submitteds’exécute aussi quand une commande de billets crée des participants. Chaque entrée indique si l’extension gratuite, Pro ou les deux le déclenchent. - Deux filtres d’e-mail ont un nom construit à partir du modèle d’e-mail :
happenboard_notifications_{$template_id}ethappenboard_notifications_booking_{$template_id}. - Un hook est en JavaScript : le filtre
happenboard.term.colorPresetsde@wordpress/hooks, pour les pastilles de couleur. Il est documenté avec son équivalent PHP,happenboard_term_color_presets.
Filtres, actions et arguments
Un filtre vous transmet une valeur et attend que vous la renvoyiez, modifiée ou non. Renvoyez toujours une valeur du même type : plusieurs hooks convertissent ou écartent une valeur du mauvais type. Une action vous signale qu’un événement a eu lieu et ignore ce que vous renvoyez.
Quand un hook transmet plusieurs arguments, indiquez combien vous en voulez dans le quatrième paramètre de add_filter() ou add_action(). Sans cela, WordPress ne transmet que le premier. Dans l’exemple ci-dessus, 10, 2 demande $schema et $event_id. Le filtre transmet aussi l’objet de la publication en troisième argument, dont cette fonction n’a pas besoin.
Le troisième paramètre est la priorité. Pro se branche sur plusieurs filtres gratuits à la priorité par défaut, 10 : prenez un nombre plus élevé, comme 20, pour modifier une valeur après Pro.
Trouver le hook qu’il vous faut
Chaque page de référence ci-dessous couvre un domaine et commence par un tableau de ses hooks. Chaque entrée donne le type du hook, l’édition qui le déclenche, le fichier où il se trouve, sa signature et ses arguments, un exemple et les pièges connus. Ouvrez ce fichier dans l’extension quand vous avez besoin du code autour du hook.
- Index de référence des hooks : tous les hooks dans un seul tableau alphabétique.
- Hooks cycle de vie de l’extension : démarrage, désinstallation, et requêtes de licence et de mise à jour de Pro.
- Hooks événements, récurrence et séries : dates et séries, adresses des événements, suppression et événements proposés.
- Hooks participants et inscriptions : le formulaire d’inscription, les inscriptions, les changements de participants et les places restantes.
- Hooks prise de rendez-vous : créneaux, hôtes, prix, paiements et chaque étape d’une réservation.
- Hooks notifications et e-mails : langue des e-mails, modèles, rappels et déclencheurs MailerPress.
- Hooks blocs, balisage et rendu : blocs, thèmes classiques, cartes, météo, flux iCal et balisage Event.
- Hooks administration, rôles et permissions : écrans d’administration, permissions et limite des consultations publiques de rendez-vous.
- Hooks migration, import et export : sources de migration et fichier de sauvegarde des réglages.
- Hooks billetterie et paiements : billets Pro, commandes Stripe et WooCommerce, remboursements et empreintes bancaires.
- Hooks synchronisation, webhooks et contrôle d’accès : synchronisation Google et Outlook, webhooks sortants, check-in et badges.
- Hooks agents et abilities : ce que les agents IA peuvent faire sur le site et le journal de leurs actions.