Que fait-on quand un bus municipal tombe en panne trente minutes avant l’ouverture des inscriptions à la fête de quartier, et que la salle ne peut plus accueillir que la moitié du public prévu ? C’est la question posée un vendredi après-midi par le service communication d’une collectivité, pour un site événementiel construit autour d’un simple formulaire Gravity Forms couplé à un compteur de places.
La réponse habituelle — désactiver le plugin de formulaire, ou passer la page en brouillon — a deux défauts majeurs. Elle coupe l’accès à toutes les informations pratiques de l’événement, pas seulement à l’inscription, et elle nécessite une intervention technique dans l’urgence, ce qui n’est jamais raisonnable un vendredi à 16 h 45.
Trois états plutôt qu’un interrupteur binaire
La bonne modélisation n’oppose pas « inscriptions ouvertes » à « inscriptions fermées ». Il existe un troisième état, intermédiaire et temporaire : le gel. Une inscription gelée signifie que le formulaire reste visible, que l’événement reste consultable, mais qu’aucune nouvelle inscription n’est acceptée tant que la situation n’est pas éclaircie. C’est un état réversible en un clic, contrairement à la fermeture définitive qui, elle, correspond à une décision assumée.
Techniquement, cela se traduit par un champ meta sur l’article événement, avec trois valeurs possibles : ouvert, gele, clos. Un menu déroulant simple dans l’éditeur, ajouté via une meta box classique, permet à n’importe quel agent du service communication de basculer d’un état à l’autre sans toucher au code.
Implémentation côté formulaire

Gravity Forms propose un hook précis pour intercepter la soumission avant tout traitement : gform_validation. C’est le point d’entrée idéal pour bloquer une inscription sans désactiver le formulaire lui-même, ce qui préserve l’affichage des champs et des informations pratiques.
add_filter( 'gform_validation_42', 'agence_bloquer_si_inscriptions_gelees' );
function agence_bloquer_si_inscriptions_gelees( $validation_result ) {
$form = $validation_result['form'];
$event_id = agence_recuperer_evenement_lie( $form['id'] );
$etat = get_post_meta( $event_id, '_agence_etat_inscriptions', true );
if ( 'gele' === $etat ) {
$validation_result['is_valid'] = false;
foreach ( $form['fields'] as &$field ) {
$field->failed_validation = true;
$field->validation_message = 'Les inscriptions sont temporairement suspendues. Merci de réessayer un peu plus tard.';
break; // un seul message suffit, sur le premier champ
}
}
$validation_result['form'] = $form;
return $validation_result;
}
Le message affiché change selon la raison du gel, stockée elle aussi en meta et modifiable librement par l’équipe communication : incident logistique, salle en cours de réévaluation, ou simple pause avant l’ouverture officielle d’un second créneau.
Rendre l’état visible sans effrayer le visiteur
Un bandeau discret au-dessus du formulaire, plutôt qu’un message d’erreur rouge, évite de donner une impression de dysfonctionnement technique. La formulation retenue avec le service communication a été volontairement rassurante :
- « Les inscriptions sont momentanément suspendues, elles rouvriront très prochainement. »
- Un lien vers la page Facebook ou le compte de la collectivité pour suivre l’actualité en temps réel.
- Aucune mention du mot « bug » ou « incident », qui inquiéterait inutilement les familles déjà inscrites.
Notifier l’équipe en interne
Le passage à l’état gelé déclenche également un e-mail interne via wp_mail, envoyé à la boîte générique du service événementiel, pour que la bascule ne passe pas inaperçue et que quelqu’un pense à la lever une fois le problème réglé.
Ce que cette approche évite
Sans ce système à trois états, l’équipe aurait probablement fini par supprimer le formulaire en urgence, oubliant parfois de le réactiver plusieurs jours après la résolution de l’incident — ce qui s’était déjà produit l’année précédente sur un autre événement, provoquant une perte d’inscriptions difficile à rattraper.
Un bon interrupteur d’urgence doit pouvoir être actionné par la personne la moins technique de l’équipe, en moins de dix secondes, sans lire de documentation.
En résumé
Geler des inscriptions n’est pas un cas particulier : c’est un état à part entière du cycle de vie d’un événement, au même titre que « ouvert » ou « clos ». En le modélisant explicitement plutôt qu’en bricolant une désactivation ponctuelle du plugin de formulaire, l’équipe communication d’une collectivité gagne une autonomie précieuse le jour où, justement, un imprévu logistique impose une réaction rapide.