Site événementiel multi-univers avec système de réservation évolutif (WooCommerce puis Fluent Forms)

Conception et développement en direct d'un site vitrine pour un organisme événementiel (aujourd'hui fermé) organisant des événements immersifs autour de la fantasy, la science-fiction et le manga : maquette animée en vidéos WebM générées par IA, architecture multi-CPT par univers d'événement, réservations avec suivi des places en temps réel, et allègement technique du site lors du passage d'événements payants à des événements gratuits.

Contexte

Client direct, organisme événementiel organisant des événements immersifs autour de la fantasy, la science-fiction et la pop culture (Tolkien, univers gothique/steampunk, Harry Potter, culture japonaise), en partenariat avec un cinéma local. Conception d'une maquette riche en animations pour un rendu immersif, avec un objectif de légèreté technique malgré l'ambition visuelle.

Vidéos IA reformatées pour la performance

Les visuels animés en 3D des sections d'accueil et des pages d'événement sont générés par IA puis reformatés en .webm (avec repli .mp4 pour la compatibilité), afin de garder des animations élaborées sans pénaliser le poids des pages.

Architecture multi-CPT sur mesure

Thème 100% maison, sans thème parent ni thème du marché. Quatre types de contenu personnalisés définis dans functions.php : evenement, commercant (exposants et restauration), films, animations. Taxonomie hiérarchique type_evenement pour classer les événements par univers. L'archive native du CPT événement est volontairement désactivée par redirection forcée vers l'accueil (disable_evenement_archive_redirect) — le listing est entièrement piloté par un shortcode maison plutôt que par le comportement WordPress par défaut.

Un habillage visuel distinct par univers d'événement

Quatre univers d'événement (Rendez-Vous en Terre du Milieu, Fantasmagoria, Noël à Poudlard, Otaku no Sekai), chacun avec sa propre identité visuelle appliquée dynamiquement via une classe CSS conditionnelle sur le <body>, déduite de la taxonomie de l'événement ou du slug de la page consultée — sans dupliquer les templates pour chaque univers.

Listing d'événements par type et code couleur temporel

Shortcode [evenements_par_type] qui filtre les événements par taxonomie et calcule un code couleur vert/rouge (à venir / passé) en comparant la date de fin à la date du jour. Les dates étant saisies en français, une conversion des noms de mois vers l'anglais est nécessaire avant strtotime(), PHP ne parsant pas nativement les dates en français.

Fiches événement détaillées

Chaque événement dispose d'infos pratiques (dates, lieu, tarif, horaires), d'un contenu éditorial libre, d'animations et de films liés (affichés via des template parts dédiés), et de galeries d'exposants et de restauration : jusqu'à 5 photos par entité (champs répéteur ACF) et liens vers les réseaux sociaux. Lien conditionnel vers une page de volontariat lorsqu'elle est renseignée.

Réservations : de WooCommerce à Fluent Forms

Le premier événement proposait des réservations payantes de plusieurs types, gérées via WooCommerce. Les événements suivants étant devenus gratuits, WooCommerce a été retiré lors d'une maintenance d'allègement du site, remplacé par un système de réservation reposant sur Fluent Forms.

Disponibilité des créneaux en temps réel

Des endpoints PHP dédiés interrogent directement le modèle des soumissions Fluent Forms (FluentForm\App\Models\Submission) pour calculer les places restantes par créneau et par activité (parties de jeu de rôle, ateliers modelage, Zombicide), renvoyées en JSON pour un affichage dynamique côté front. Un endpoint distinct gère les créneaux de bénévolat, avec une logique différente : signaler qu'un créneau est déjà couvert dès qu'une personne s'y est inscrite, plutôt que de compter des places.

Note

L'organisme a cessé son activité et le site n'est aujourd'hui plus accessible.