WooCommerce Multi-Step Booking Checkout
Plugin WooCommerce qui transforme le checkout Bookings en un parcours multi-étapes : sélection, formulaire, signature et paiement, avec données stockées et webhooks enrichis.
by TB Formation · github.com/srgabrysh/wc_multi_step_booking_checkout · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/srgabrysh/wc_multi_step_booking_checkout/archive/refs/heads/master.zipPlugin WordPress pour créer un workflow multi-étapes avec WooCommerce Bookings.
🎯 Objectif
Transformer le processus de commande WooCommerce standard en un parcours guidé en 4 étapes distinctes, intégrées dans le site via Elementor, avec stockage sécurisé des données dans la commande et disponibilité dans les webhooks WooCommerce.
📋 Fonctionnalités
Workflow Multi-Étapes
- Étape 1 : Sélection de la prestation et des dates (WooCommerce Bookings)
- Étape 2 : Formulaire complémentaire (Gravity Forms)
- Étape 3 : Signature électronique
- Étape 4 : Validation finale et redirection checkout
Sécurité et Persistance
- Gestion de session WooCommerce sécurisée
- Protection d'accès séquentiel aux étapes
- Validation côté serveur à chaque transition
- TTL configurable pour les sessions (5-60 minutes)
Intégration Elementor
- Shortcodes pour intégration complète
- Barre de progression responsive
- Boutons de navigation avec validation
- Protection de contenu par étape
Administration
- Interface de configuration intuitive
- Validation en temps réel
- Statut de configuration
- Mode debug avec logs détaillés
🚀 Installation
- Télécharger le plugin dans
/wp-content/plugins/wc_multi_step_booking_checkout/ - Installer les dépendances :
composer install - Activer le plugin dans l'admin WordPress
- Configurer les pages dans WooCommerce > Multi-Step Checkout
⚙️ Configuration
Prérequis
- WordPress 5.0+
- WooCommerce 6.0+
- WooCommerce Bookings (recommandé)
- PHP 7.4+
Pages du Workflow
Configurez 4 pages WordPress (une par étape) dans l'interface d'administration :
- Étape 1 : Page avec produit bookable
- Étape 2 : Page avec formulaire
- Étape 3 : Page avec signature
- Étape 4 : Page de validation
📝 Shortcodes
[wcmsbc_progress]
Affiche la barre de progression du workflow.
Attributs :
show_labels="true": Afficher les libellés d'étapesshow_percentage="false": Afficher le pourcentageclass="": Classes CSS supplémentaires
Exemple :
[wcmsbc_progress show_labels="true" class="my-custom-class"]
[wcmsbc_next]
Bouton pour passer à l'étape suivante.
Attributs :
text="Suivant": Texte du boutonclass="btn btn-primary": Classes CSSvalidate="true": Activer la validation
Exemple :
[wcmsbc_next text="Continuer" class="btn btn-custom"]
[wcmsbc_prev]
Bouton pour revenir à l'étape précédente.
Attributs :
text="Précédent": Texte du boutonclass="btn btn-secondary": Classes CSSshow_on_step_1="false": Masquer sur l'étape 1
Exemple :
[wcmsbc_prev text="Retour" show_on_step_1="true"]
[wcmsbc_step_guard]
Protection de contenu par étape.
Attributs :
step="2": Étape requise pour voir le contenumessage="...": Message si accès non autorisé
Exemple :
[wcmsbc_step_guard step="2" message="Complétez l'étape 1 d'abord"]
Contenu visible uniquement après l'étape 1
[/wcmsbc_step_guard]
🏗️ Architecture
Structure Modulaire
src/
├── Core/
│ ├── Plugin.php # Orchestration principale
│ └── Logger.php # Gestion des logs
├── Modules/
│ ├── Session/ # Gestion des sessions
│ ├── Workflow/ # Logique du workflow
│ └── Shortcodes/ # Shortcodes Elementor
└── Admin/ # Interface d'administration
Principes de Développement
- Architecture modulaire : Séparation claire des responsabilités
- SOLID : Respect des principes SOLID
- PSR-4 : Autoload standardisé
- Sécurité : Validation, sanitisation, nonces
- Performance : Chargement conditionnel des assets
📊 Données Stockées
Session WooCommerce
wizard_started: Timestamp de démarragecurrent_step: Étape courantesteps_completed: Étapes validéesform_data: Données du formulairesignature_data: Données de signature
Métadonnées de Commande
_tb_form_data: Données formulaire (JSON)_tb_signature: Données signature (JSON)_tb_wizard_version: Version du workflow
Webhooks
Enrichissement automatique des payloads avec :
{
"tb_wizard": {
"form": {...},
"signature": {...},
"wizard_version": "1.0",
"booking_id": "..."
}
}
🚨 Sécurité
Validation
- Nonces sur tous les appels AJAX
- Sanitisation des données utilisateur
- Validation côté serveur obligatoire
- Vérification des capabilities
Protection d'Accès
- Accès séquentiel aux étapes
- Redirection automatique si contournement
- Expiration des sessions
- Validation des prérequis
🎨 Personnalisation CSS
Classes Principales
.wc-msbc-progress: Barre de progression.wc-msbc-next-btn: Bouton suivant.wc-msbc-prev-btn: Bouton précédent.wc-msbc-step: Étape individuelle
Responsive
Design entièrement responsive avec breakpoints :
- Desktop : > 1200px
- Tablet : 768px - 1200px
- Mobile : < 768px
📈 Version
Version actuelle : 1.1.2
Changelog
-
1.1.2 : Correction majeure du workflow
- Correction : Détection améliorée des produits bookables dans le panier
- Amélioration : Logs de débogage détaillés pour diagnostiquer les problèmes
- Correction : Gestion des conflits de hooks template_redirect avec priorités
- Amélioration : Validation multiple pour identifier les produits WooCommerce Bookings
- Correction : Gestion robuste des sessions WooCommerce non initialisées
- Debug : Mode debug activé par défaut avec niveau de log détaillé
-
1.1.1 : Amélioration stabilité
- Amélioration de la gestion des erreurs
- Optimisation des performances
- Mise à jour de la documentation
-
1.0.0 : Version initiale MVP
- Workflow 4 étapes
- Shortcodes Elementor
- Interface d'administration
- Session WooCommerce
🤝 Support
Pour le support et les questions :
- Vérifiez la configuration dans l'admin
- Consultez les logs de debug
- Vérifiez les prérequis (WooCommerce, Bookings)
📄 Licence
GPL-2.0-or-later
Développé par TB Formation - Plugin WordPress professionnel pour workflow e-commerce avancé.