Hooks notifications et e-mails

Disponible dans :Free

Ces hooks agissent sur les e-mails de HappenBoard. Ils concernent les participants inscrits à un événement, les clients qui prennent rendez-vous, ainsi que l’hôte et l’administrateur prévenus de chaque réservation. Ils permettent de réécrire ou d’annuler un message, de choisir sa langue, de changer le moment des rappels ou de décider qui est prévenu d’une réservation.

Côté réglages, voyez les e-mails automatiques et la langue du participant. Si les hooks sont nouveaux pour vous, commencez par Étendre HappenBoard avec les hooks.

Les e-mails envoyés par HappenBoard

Chaque e-mail a un identifiant de modèle. Cet identifiant termine le nom du filtre qui peut réécrire le message, et il est transmis à happenboard_email_locale.

Les e-mails d’inscription passent par happenboard_notifications_{$template_id} :

IdentifiantEnvoyé quand
confirmationQuelqu’un s’inscrit, ou obtient une place libérée sur liste d’attente. Nécessite Send confirmation email on RSVP / ticket purchase.
reminderSa date entre dans le délai de rappel. Nécessite Send reminder email before each event.
cancellationSon inscription est annulée : par lui, par un remboursement ou par un administrateur.
date_changedSa date change : l’événement a été modifié, ou un administrateur l’a déplacé sur une autre date.
date_cancelledSa date est annulée, ou ne fait plus partie de la série.

Les e-mails de réservation passent par happenboard_notifications_booking_{$template_id} :

IdentifiantDestinataireQuand
requestClientUne réservation à valider est reçue.
confirmationClientLa réservation est confirmée : tout de suite, à la validation ou au paiement.
reminderClientAvant le rendez-vous, 24 heures et 1 heure avant par défaut.
cancellationClientLa réservation est annulée.
declinedClientUne demande est refusée.
payment_failedClientLa carte bloquée pour une demande n’a pas pu être débitée.
rescheduled, request_rescheduledClientUne réservation, ou une demande, est déplacée.
operator_request, operator_confirmed, operator_cancelled, operator_rescheduledHôte et administrateurUne demande attend, ou une réservation est confirmée, annulée ou déplacée. Nécessite Email the host and the site admin about bookings.

Ces réglages se trouvent dans HappenBoard → Settings → Email. Le circuit des demandes est décrit dans Valider les demandes de rendez-vous.

Comment partent les rappels

Les rappels d’inscription viennent d’une seule tâche WP-Cron, happenboard_rsvp_reminder_sweep, lancée toutes les 15 minutes. Chaque passage cherche les dates qui commencent désormais dans le délai de rappel (Send reminder hours before start, 24 par défaut). Il déclenche ensuite happenboard_cron_reminder une fois pour chaque participant toujours inscrit.

L’e-mail de rappel de HappenBoard écoute cette action, tout comme les rappels WhatsApp et MailerPress de HappenBoard Pro. Avant la version 0.2.0, chaque inscription programmait sa propre tâche cron ; le premier balayage après la mise à jour les reprend.

Les rappels de rendez-vous fonctionnent autrement. Chaque réservation confirmée programme ses propres rappels, avec Action Scheduler quand il est installé et WP-Cron sinon, aux heures fixées par happenboard_booking_reminder_offsets.

La langue d’un e-mail

  • E-mails d’inscription : la langue de la traduction de l’événement sur laquelle le participant s’est inscrit (WPML ou Polylang), sinon celle du site.
  • E-mails de réservation au client : la langue de la page où il a réservé, sinon celle de son profil s’il a un compte, sinon celle du site.
  • E-mails de réservation à l’hôte et à l’administrateur : la langue du profil de chaque destinataire. happenboard_email_locale ne s’exécute pas pour eux.

happenboard_email_locale peut modifier les deux premiers cas. HappenBoard Pro s’en sert pour lire un champ de langue du formulaire d’inscription.

Déclencheurs MailerPress (Pro)

Les actions happenboard_mp_* n’existent que dans HappenBoard Pro, et ne se déclenchent que si MailerPress est actif et l’intégration MailerPress activée. HappenBoard n’envoie rien sur ces actions : ce sont les déclencheurs sur lesquels vous construisez vos automatisations dans MailerPress. Voir Automatisations MailerPress.

happenboard_email_locale

Filtre Free src/Service/Notifications/AttendeeNotifier.php

Filtre la langue dans laquelle un e-mail est rédigé. HappenBoard passe à la locale renvoyée le temps de construire l’objet et le corps du message : un destinataire peut ainsi lire du français sur un site en anglais.

Signature

apply_filters( 'happenboard_email_locale', string $locale, string $template_id, WP_Post|null $event, array<string,mixed> $row )

Paramètres

$locale string
La valeur par défaut. E-mails d’inscription : la locale de la traduction de l’événement sur laquelle le participant s’est inscrit (WPML ou Polylang), sinon celle du site. E-mails de réservation : la locale de la page où la réservation a été faite, sinon celle du profil du client s’il a un compte, sinon celle du site.
$template_id string
L’e-mail envoyé. E-mails d’inscription : confirmation, reminder, cancellation, date_changed, date_cancelled. E-mails de réservation : request, confirmation, reminder, cancellation, declined, payment_failed, rescheduled, request_rescheduled.
$event WP_Post|null
L’événement, pour les e-mails d’inscription. Toujours null pour les e-mails de réservation.
$row array<string,mixed>
La ligne du participant pour les e-mails d’inscription, celle de la réservation, sans son cancel_token, pour les e-mails de réservation. Les deux contiennent custom_fields, où se trouve un éventuel champ de langue.

Valeur de retour

string Une locale WordPress comme fr_FR. Renvoyez $locale tel quel pour garder la valeur par défaut.

Exemple

add_filter(
    'happenboard_email_locale',
    function ( $locale, $template_id, $event, $row ) {
        // Ligne participant : "email", ligne réservation : "customer_email".
        $email = (string) ( $row['email'] ?? $row['customer_email'] ?? '' );

        return str_ends_with( $email, '.fr' ) ? 'fr_FR' : $locale;
    },
    20,
    4
);

Remarques

  • Quatre arguments : enregistrez avec 10, 4 ou une priorité plus tardive, sinon vous ne recevez pas la ligne. Déclenché depuis src/Service/Notifications/AttendeeNotifier.php et src/Service/Booking/Notifications/BookingNotifier.php.
  • Ne typez pas $event en WP_Post : il vaut null pour les e-mails de réservation.
  • Les e-mails envoyés à l’hôte et à l’administrateur du site au sujet d’une réservation ne passent pas par ce filtre. Chacun est rédigé dans la langue du profil de son destinataire.
  • HappenBoard Pro s’y branche en priorité 10 et renvoie la langue enregistrée dans le champ de langue du participant ou du client (clé language par défaut) quand il y en a une. Le changement de langue ne touche que les textes dont une traduction est installée sur le site.

happenboard_notifications_{$template_id}

Filtre Free src/Service/Notifications/AttendeeNotifier.php

Filtre un e-mail d’inscription juste avant son passage à wp_mail(), ou l’annule. Le nom se termine par l’identifiant du modèle : branchez-vous sur le nom complet, par exemple happenboard_notifications_confirmation.

Signature

apply_filters( "happenboard_notifications_{$template_id}", array<string,mixed> $payload, WP_Post $event, array<string,mixed> $attendee )

Paramètres

$payload array<string,mixed>
to, subject, body (HTML), text (version texte), headers (tableau de lignes d’en-tête) et attachments (chemins de fichiers : le fichier agenda de la date sur confirmation et date_changed).
$event WP_Post
L’événement concerné.
$attendee array<string,mixed>
La ligne du participant, avec attendee_id, status, occurrence_seq (sa date dans une série), quantity et custom_fields.

Valeur de retour

array<string,mixed> L’e-mail à envoyer. Ajoutez 'send' => false pour l’annuler.

Exemple

add_filter(
    'happenboard_notifications_confirmation',
    function ( array $payload, $event = null, $attendee = array() ): array {
        $payload['subject'] = '[' . get_bloginfo( 'name' ) . '] ' . $payload['subject'];
        $payload['body']   .= '<p>' . esc_html__( 'See you there.', 'my-plugin' ) . '</p>';

        // Renvoyez array( 'send' => false ) + $payload pour annuler l'e-mail.
        return $payload;
    },
    40,
    3
);

Remarques

  • Cinq noms existent : happenboard_notifications_confirmation (une inscription, ou une place libérée sur liste d’attente), happenboard_notifications_reminder, happenboard_notifications_cancellation, happenboard_notifications_date_changed et happenboard_notifications_date_cancelled. Le tableau en haut de page indique quand chacun part.
  • Trois arguments : enregistrez avec 10, 3. Un contenu avec 'send' => false annule l’envoi, par exemple quand votre propre service d’e-mail transmet le message.
  • HappenBoard Pro ajoute le QR code de check-in en priorité 20 et le billet PDF en priorité 30, sur confirmation et date_changed. Complétez body et attachments au lieu de les remplacer, et branchez-vous après 30 pour voir le contenu final.
  • Gardez chaque entrée de headers sous forme de chaîne : une entrée d’un autre type peut provoquer une erreur fatale PHP. Supprimer headers ne pose pas de problème. Un en-tête Content-Type est remplacé par text/html. Le fichier agenda est temporaire et supprimé juste après l’envoi.

happenboard_cron_reminder

Action Free src/Service/Notifications/ReminderSweep.php

Se déclenche quand le rappel d’un participant est dû : une fois par participant et par date, quand la date entre dans le délai de rappel. L’e-mail de rappel de HappenBoard part sur cette action en priorité 10, suivi des rappels WhatsApp et MailerPress de HappenBoard Pro.

Signature

do_action( 'happenboard_cron_reminder', int $attendee_id )

Paramètres

$attendee_id int
Le participant à qui envoyer le rappel.

Exemple

add_action(
    'happenboard_cron_reminder',
    function ( int $attendee_id ): void {
        // Un canal à vous, en plus de l'e-mail.
        my_send_sms_reminder( $attendee_id );
    },
    50
);

Remarques

  • Un argument. L’action vient du balayage des rappels, une tâche WP-Cron (happenboard_rsvp_reminder_sweep) lancée toutes les 15 minutes. Un rappel peut donc partir jusqu’à 15 minutes après le délai exact, et plus tard sur un site dont WP-Cron ne tourne qu’aux visites.
  • L’action ne se déclenche que si « Send reminder email before each event » est activé, et pour un participant toujours inscrit à un événement publié, ni annulé ni reporté. Elle ne part jamais deux fois pour le même participant et la même date, et une personne inscrite après l’heure du rappel n’en reçoit pas.
  • Avant HappenBoard 0.2.0, chaque inscription programmait sa propre tâche cron sur ce hook. Le premier balayage après la mise à jour les reprend et les supprime. Appeler vous-même do_action() sur ce hook n’envoie l’e-mail que si le rappel est dû maintenant et n’est pas encore parti.
  • Pour supprimer l’e-mail en gardant les rappels WhatsApp et MailerPress de Pro, annulez-le sur happenboard_notifications_reminder. Retirer le callback de HappenBoard les arrête aussi : ils ne partent que lors du passage qui envoie l’e-mail.

happenboard_booking_email_tokens

Filtre Free src/Service/Booking/Notifications/BookingNotifier.php

Filtre les valeurs qui remplissent un e-mail de réservation, objet compris. Utile pour ajouter une information à chaque e-mail d’une réservation : une salle, un lien de visioconférence, une tenue à prévoir.

Signature

apply_filters( 'happenboard_booking_email_tokens', array<string,string> $tokens, int $booking_id, array<string,mixed> $row )

Paramètres

$tokens array<string,string>
E-mails au client : display_name, event_title (le type de rendez-vous) et start_local (date et heure dans le fuseau du client, avec le nom de l’hôte). Puis event_url, cancel_url (le lien privé du client pour annuler ou déplacer), price, payment_line (ce qui est payé et ce qui reste dû) et persons (« 2 × Adult, 1 × Child »). Les e-mails à l’hôte et à l’administrateur remplacent cancel_url par customer_email, host_name et previous_local. L’heure y est dans le fuseau du site, et event_url ouvre l’écran des réservations.
$booking_id int
L’identifiant de la réservation.
$row array<string,mixed>
La ligne de la réservation, sans son cancel_token.

Valeur de retour

array<string,string> Les valeurs. Les modèles n’affichent que les clés ci-dessus : modifiez les valeurs plutôt que d’ajouter des clés.

Exemple

add_filter(
    'happenboard_booking_email_tokens',
    function ( $tokens, $booking_id, $row ) {
        // Le lien de réunion enregistré sur le type de rendez-vous.
        $link = (string) get_post_meta( (int) $row['booking_type_id'], 'acme_meeting_link', true );
        if ( '' !== $link && '' !== $tokens['start_local'] ) {
            $tokens['start_local'] .= ' · ' . $link;
        }

        return $tokens;
    },
    10,
    3
);

Remarques

  • Trois arguments : enregistrez avec 10, 3. Le filtre s’exécute pour chaque e-mail de réservation, au client comme à l’équipe, dans la langue du destinataire : les textes que vous traduisez sortent dans cette langue.
  • Pour ne modifier que les e-mails de l’équipe, testez isset( $tokens['customer_email'] ) : les e-mails au client n’ont pas cette clé.
  • Laissez cancel_url intact : c’est le lien privé du client. Les valeurs sont échappées à la construction de l’e-mail : renvoyez du texte brut.
  • HappenBoard Pro ajoute la ressource partagée que la réservation occupe (une salle, une table) à start_local en priorité 10.

happenboard_notifications_booking_{$template_id}

Filtre Free src/Service/Booking/Notifications/BookingNotifier.php

Filtre un e-mail de réservation juste avant son passage à wp_mail(), ou l’annule. Le nom se termine par l’identifiant du modèle, par exemple happenboard_notifications_booking_confirmation.

Signature

apply_filters( "happenboard_notifications_booking_{$template_id}", array<string,mixed> $payload, int $booking_id, array<string,mixed> $row )

Paramètres

$payload array<string,mixed>
to, subject, body (HTML), text (version texte), headers et attachments (chemins de fichiers : l’invitation agenda sur confirmation et rescheduled, l’invitation qui retire le rendez-vous de l’agenda sur cancellation).
$booking_id int
L’identifiant de la réservation.
$row array<string,mixed>
La ligne de la réservation, sans son cancel_token.

Valeur de retour

array<string,mixed> L’e-mail à envoyer. Ajoutez 'send' => false pour l’annuler.

Exemple

add_filter(
    'happenboard_notifications_booking_confirmation',
    function ( array $payload, int $booking_id, array $row ): array {
        // Mettre l'accueil en copie de chaque confirmation.
        $payload['headers'][] = 'Bcc: [email protected]';

        return $payload;
    },
    10,
    3
);

Remarques

  • Douze identifiants de modèle. Au client : request, confirmation, reminder, cancellation, declined, payment_failed, rescheduled et request_rescheduled. À l’hôte et à l’administrateur : operator_request, operator_confirmed, operator_cancelled et operator_rescheduled.
  • Trois arguments : enregistrez avec 10, 3. Un contenu avec 'send' => false annule l’envoi.
  • Un e-mail à l’équipe passe une fois par destinataire, avec to réglé sur cette personne et un en-tête Reply-To réglé sur le client.
  • Un en-tête Content-Type est remplacé par text/html, et les en-têtes ou pièces jointes qui ne sont pas des chaînes sont retirés. Les invitations sont des fichiers temporaires, supprimés après l’envoi. Un e-mail vers une adresse effacée à la suite d’une demande RGPD est abandonné avant ce filtre.

happenboard_booking_operator_recipients

Filtre Free src/Service/Booking/Notifications/BookingNotifier.php

Filtre qui reçoit les e-mails côté équipe pour une réservation : par défaut l’hôte de la réservation et l’adresse d’administration du site. Utile pour ajouter un accueil, retirer l’administrateur ou ne garder que certains événements.

Signature

apply_filters( 'happenboard_booking_operator_recipients', array<int,string> $recipients, string $event, int $booking_id, array<string,mixed> $row )

Paramètres

$recipients array<int,string>
Adresses e-mail : celle du compte de l’hôte et l’option admin_email, moins la personne qui fait la modification. Vide quand « Email the host and the site admin about bookings » est désactivé.
$event string
request (en attente de validation), confirmed, cancelled ou rescheduled.
$booking_id int
L’identifiant de la réservation.
$row array<string,mixed>
La ligne de la réservation, sans son cancel_token.

Valeur de retour

array<int,string> Les adresses à prévenir. Les adresses invalides, les doublons et l’adresse du client sont retirés ensuite. Renvoyez un tableau vide pour ne rien envoyer.

Exemple

add_filter(
    'happenboard_booking_operator_recipients',
    function ( array $recipients, string $event, int $booking_id, array $row ): array {
        // L'accueil est prévenu de chaque demande en attente de validation.
        if ( 'request' === $event ) {
            $recipients[] = '[email protected]';
        }

        return $recipients;
    },
    10,
    4
);

Remarques

  • Quatre arguments : enregistrez avec 10, 4. Le réglage se trouve dans HappenBoard → Settings → Email et il est activé par défaut.
  • Le filtre s’exécute même quand le réglage est désactivé, avec une liste vide : un callback peut donc ajouter des adresses.
  • Personne n’est prévenu d’une modification qu’il a faite lui-même : l’adresse de l’utilisateur connecté est retirée avant le filtre, mais une adresse que vous rajoutez reçoit l’e-mail. Une demande refusée n’envoie aucun e-mail à l’équipe.
  • Chaque destinataire reçoit son propre e-mail, dans la langue de son profil quand l’adresse appartient à un compte, via happenboard_notifications_booking_operator_{$event}.

happenboard_booking_reminder_offsets

Filtre Free src/Service/Booking/Notifications/BookingNotifier.php

Définit combien d’heures avant un rendez-vous partent les e-mails de rappel. Par défaut, deux rappels : 24 heures et 1 heure avant le début.

Signature

apply_filters( 'happenboard_booking_reminder_offsets', array<int,int> $offsets, int $booking_id, array<string,mixed> $row )

Paramètres

$offsets array<int,int>
Heures avant le début. Par défaut array( 24, 1 ).
$booking_id int
L’identifiant de la réservation.
$row array<string,mixed>
La ligne de la réservation, sans son cancel_token. Un tableau vide quand les rappels sont effacés, voir les notes.

Valeur de retour

array<int,int> Des heures entières avant le début du rendez-vous. Un tableau vide désactive les rappels de rendez-vous.

Exemple

add_filter(
    'happenboard_booking_reminder_offsets',
    function ( array $offsets, int $booking_id, array $row ): array {
        // Deux jours avant, la veille et deux heures avant.
        return array( 48, 24, 2 );
    },
    10,
    3
);

Remarques

  • Trois arguments : enregistrez avec 10, 3. Les valeurs nulles, négatives ou en double sont ignorées, et un rappel prévu dans moins d’une minute est sauté.
  • Les rappels sont programmés avec la confirmation : à la réservation, à la validation ou au paiement. Un déplacement les efface et les reprogramme. Ils passent par Action Scheduler quand il est installé, sinon par WP-Cron, et ne partent que si la réservation est confirmée ou en attente de paiement.
  • Renvoyez toujours la même liste. Sans Action Scheduler, le filtre est rappelé avec un $row vide quand les rappels sont effacés (annulation, déplacement) : une liste calculée à partir de $row laisserait des rappels orphelins.
  • L’objet devient « Starting soon » pour un délai de moins de 12 heures. Ce filtre ne concerne que les rendez-vous : les rappels d’inscription suivent « Send reminder hours before start » et déclenchent happenboard_cron_reminder.

happenboard_mp_rsvp_created

Action Pro src/Service/Integrations/MailerPress/Bridge.php

Le déclencheur MailerPress émis quand quelqu’un s’inscrit à un événement. Sert à accueillir le participant, envoyer les informations pratiques ou lancer une séquence avant l’événement.

Signature

do_action( 'happenboard_mp_rsvp_created', array<string,mixed> $ctx )

Paramètres

$ctx array<string,mixed>
Contexte résolu : user_id, email, first_name, last_name, event_id, event_title, event_url, event_date, venue, quantity.

Exemple

add_action(
    'happenboard_mp_rsvp_created',
    function ( array $ctx ): void {
        // Journaliser chaque inscription transmise à MailerPress.
        error_log(
            sprintf(
                '%s registered for %s (%d seats).',
                (string) ( $ctx['email'] ?? '' ),
                (string) ( $ctx['event_title'] ?? '' ),
                (int) ( $ctx['quantity'] ?? 1 )
            )
        );
    }
);

Remarques

  • Un argument. Il suit happenboard_rsvp_submitted en priorité 20, après l’e-mail de confirmation de HappenBoard en priorité 10. Une inscription placée sur liste d’attente ne déclenche rien avant d’être passée en inscrit, via happenboard_attendee_status_changed.
  • Quand la synchronisation des participants est activée, le contact MailerPress est créé ou mis à jour avant l’action : il existe donc quand MailerPress exécute le déclencheur.
  • Les commandes payantes déclenchent l’action sous-jacente une fois par ligne de billet : un même paiement Stripe ou une même commande WooCommerce peut donc émettre plusieurs déclencheurs pour le même acheteur.
  • event_date est la date du participant (sa date dans une série), en chaîne lisible aux formats de date et d’heure du site. first_name et last_name viennent du nom coupé à son premier espace.

happenboard_mp_rsvp_cancelled

Action Pro src/Service/Integrations/MailerPress/Bridge.php

Le déclencheur MailerPress émis quand une inscription est annulée. Sert à une séquence de reconquête ou à demander ce qui n’a pas fonctionné.

Signature

do_action( 'happenboard_mp_rsvp_cancelled', array<string,mixed> $ctx )

Paramètres

$ctx array<string,mixed>
Contexte résolu : user_id, email, first_name, last_name, event_id, event_title, event_url, event_date, venue, quantity.

Exemple

add_action(
    'happenboard_mp_rsvp_cancelled',
    function ( array $ctx ): void {
        // Étiqueter le contact dans votre propre système.
        my_plugin_tag_contact(
            (string) ( $ctx['email'] ?? '' ),
            'cancelled-' . (int) ( $ctx['event_id'] ?? 0 )
        );
    }
);

Remarques

  • Un argument. Il suit happenboard_rsvp_cancelled en priorité 20 : le lien d’annulation du participant, mais aussi un remboursement Stripe ou une commande WooCommerce annulée, une fois par ligne de participant. Écoutez directement happenboard_rsvp_cancelled s’il faut les distinguer.
  • Un administrateur qui passe le statut à cancelled dans la liste des participants ne déclenche pas ce hook.
  • Aucun contact n’est créé ni mis à jour ici : seul le déclencheur d’inscription synchronise les contacts.
  • Le contexte est lu après l’annulation : $ctx décrit donc une ligne dont le statut est déjà cancelled.

happenboard_mp_checked_in

Action Pro src/Service/Integrations/MailerPress/Bridge.php

Le déclencheur MailerPress émis quand un participant passe le check-in à l’entrée.

Signature

do_action( 'happenboard_mp_checked_in', array<string,mixed> $ctx )

Paramètres

$ctx array<string,mixed>
Contexte résolu : user_id, email, first_name, last_name, event_id, event_title, event_url, event_date, venue, quantity.

Exemple

add_action(
    'happenboard_mp_checked_in',
    function ( array $ctx ): void {
        // Journaliser chaque check-in transmis à MailerPress.
        error_log(
            sprintf(
                '%s checked in at %s.',
                (string) ( $ctx['email'] ?? '' ),
                (string) ( $ctx['event_title'] ?? '' )
            )
        );
    }
);

Remarques

  • Un argument. Il suit happenboard_pro_attendee_checked_in en priorité 20 : il se déclenche donc aussi quand un billet est scanné une nouvelle fois.
  • L’identifiant de la ligne de check-in n’est pas dans $ctx. Branchez-vous sur happenboard_pro_attendee_checked_in si vous en avez besoin.
  • Il ne se déclenche jamais avec un contexte vide : une ligne de participant illisible ou sans e-mail ne déclenche rien.

happenboard_mp_reminder

Action Pro src/Service/Integrations/MailerPress/Bridge.php

Le déclencheur MailerPress émis quand le rappel d’un participant est dû, 24 heures avant sa date par défaut. Sert au message « à demain ».

Signature

do_action( 'happenboard_mp_reminder', array<string,mixed> $ctx )

Paramètres

$ctx array<string,mixed>
Contexte résolu : user_id, email, first_name, last_name, event_id, event_title, event_url, event_date, venue, quantity.

Exemple

add_action(
    'happenboard_mp_reminder',
    function ( array $ctx ): void {
        // Journaliser chaque rappel transmis à MailerPress.
        error_log(
            sprintf(
                'Reminder due for %s (event %d).',
                (string) ( $ctx['email'] ?? '' ),
                (int) ( $ctx['event_id'] ?? 0 )
            )
        );
    }
);

Remarques

  • Un argument. Il suit happenboard_cron_reminder en priorité 20 et ne se déclenche que lors du passage qui envoie le rappel de HappenBoard : une fois par participant et par date.
  • Pas de rappel, pas de déclencheur. Rien ne part si « Send reminder email before each event » est désactivé, pour une inscription tardive, ou pour un événement annulé, reporté ou dépublié.
  • Le moment suit le balayage des rappels : dans les 15 minutes qui suivent le délai réglé dans « Send reminder hours before start ».
  • Annuler l’e-mail sur happenboard_notifications_reminder conserve ce déclencheur.

happenboard_mp_post_event_tick

Action Pro src/Service/Integrations/MailerPress/PostEventCron.php

Se déclenche une fois par participant depuis le balayage quotidien d’après-événement. La passerelle MailerPress le transforme en happenboard_mp_post_event. Déclenchez-le vous-même pour renvoyer une relance à un participant.

Signature

do_action( 'happenboard_mp_post_event_tick', int $attendee_id, int $event_id )

Paramètres

$attendee_id int
Identifiant de la ligne du participant.
$event_id int
L’événement dont une date vient de se terminer.

Exemple

add_action(
    'happenboard_mp_post_event_tick',
    function ( int $attendee_id, int $event_id ): void {
        // Journaliser chaque relance trouvée par le balayage.
        error_log(
            sprintf(
                'Follow-up due for attendee %d of event %d.',
                $attendee_id,
                $event_id
            )
        );
    },
    10,
    2
);

Remarques

  • Deux arguments : enregistrez avec 10, 2. Contrairement aux autres hooks happenboard_mp_*, il transmet des identifiants, pas le contexte résolu.
  • Il vient de la tâche WP-Cron quotidienne happenboard_pro_mp_post_event_scan, qui ne fait rien tant que l’intégration MailerPress est désactivée.
  • Le balayage retient les dates terminées il y a entre 26 heures et 1 heure, 500 au plus par passage et 1 000 participants par événement. Chaque date d’un événement récurrent compte, tout comme un événement enregistré sans fin. Seuls les participants toujours inscrits produisent un déclenchement, et sur une série seulement ceux de la date terminée.
  • Chaque date est notée dans la méta _happenboard_mp_post_event_fired de l’événement avant le traitement de ses participants : le balayage ne la traite jamais deux fois. Appeler vous-même do_action( 'happenboard_mp_post_event_tick', $attendee_id, $event_id ) permet de renvoyer une relance.

happenboard_mp_post_event

Action Pro src/Service/Integrations/MailerPress/Bridge.php

Le déclencheur MailerPress émis le lendemain de la fin d’une date d’événement, une fois par participant inscrit à cette date. Sert aux remerciements, aux questionnaires ou à une offre de suivi.

Signature

do_action( 'happenboard_mp_post_event', array<string,mixed> $ctx )

Paramètres

$ctx array<string,mixed>
Contexte résolu : user_id, email, first_name, last_name, event_id, event_title, event_url, event_date, venue, quantity.

Exemple

add_action(
    'happenboard_mp_post_event',
    function ( array $ctx ): void {
        // Programmer un questionnaire de satisfaction.
        my_plugin_queue_survey(
            (string) ( $ctx['email'] ?? '' ),
            (int) ( $ctx['event_id'] ?? 0 )
        );
    }
);

Remarques

  • Un argument. C’est la version, par la passerelle, de happenboard_mp_post_event_tick : les mêmes règles s’appliquent, chaque date d’un événement récurrent compte, pour ses propres participants, et seuls les participants toujours inscrits sont retenus.
  • Le moment dépend de WP-Cron : un site trop peu visité pour lancer ses tâches quotidiennes peut manquer la fenêtre de 26 heures.

happenboard_pro_mailerpress_contact

Filtre Pro src/Service/Integrations/MailerPress/Bridge.php

Filtre le contact MailerPress juste avant que HappenBoard le crée ou le mette à jour, pour ajouter des champs personnalisés, des listes ou votre propre source d’inscription.

Signature

apply_filters( 'happenboard_pro_mailerpress_contact', array<string,mixed> $payload, array<string,mixed> $ctx )

Paramètres

$payload array<string,mixed>
Les arguments de add_mailerpress_contact() : email, firstName, lastName, subscription_status, lists, custom_fields et opt_in_source.
$ctx array<string,mixed>
Le même contexte résolu que celui des déclencheurs happenboard_mp_*.

Valeur de retour

array<string,mixed> Les arguments passés à add_mailerpress_contact(). Renvoyez le tableau reçu, complété.

Exemple

add_filter(
    'happenboard_pro_mailerpress_contact',
    function ( array $payload, array $ctx ): array {
        // Enregistrer le nombre de places sur le contact.
        $payload['custom_fields']['hp_seats'] = (string) ( $ctx['quantity'] ?? 1 );

        return $payload;
    },
    10,
    2
);

Remarques

  • Deux arguments : enregistrez avec 10, 2.
  • Il ne s’exécute qu’à l’inscription, et seulement si la synchronisation des participants est activée dans les réglages MailerPress de HappenBoard Pro.
  • Gardez les clés existantes, email avant tout. Complétez custom_fields sans le remplacer : hp_event_title, hp_event_date, hp_event_url et hp_event_venue sont les balises de fusion que les déclencheurs HappenBoard proposent dans MailerPress.
  • subscription_status suit le réglage d’opt-in (subscribed ou pending). Forcer subscribed passe outre un choix de double opt-in.

Pour aller plus loin