HDWebmobile Réservation & Rendez-vous
Vendez des services et rendez-vous réservables via WooCommerce, avec une capacité par créneau qui ne peut jamais être surréservée.
Description
HDWebmobile Réservation & Rendez-vous transforme n'importe quel produit WooCommerce simple en service réservable. Les clients choisissent une date et un créneau horaire disponibles sur la page produit ; la réservation est confirmée dès que leur commande est finalisée, et ils peuvent la consulter ou l'annuler plus tard sous Mon compte.
Pourquoi cette extension existe
Une extension concurrente de réservation (Amelia) présentait une vulnérabilité IDOR/assignation massive authentifiée (CVE-2026-2931, CVSS 8.8) : son point de terminaison « mettre à jour mon profil de réservation » acceptait un champ fourni par le client reliant l'enregistrement de réservation à un identifiant d'utilisateur WordPress, sans vérifier qu'il pointait toujours vers le compte du demandeur — permettant à un client à faibles privilèges de réinitialiser le mot de passe de n'importe quel utilisateur WordPress, y compris un administrateur. Cette extension ferme cette classe de vulnérabilité par construction :
- Le propriétaire d'une réservation est écrit à un seul endroit — à la finalisation de la commande, à partir de l'identifiant client de la commande elle-même — et jamais plus. Il n'existe aucun chemin de code « mise à jour de réservation » dans cette extension qui accepte un identifiant client, un identifiant utilisateur ou tout champ similaire provenant d'une requête.
- Cette extension ne touche jamais au mot de passe WordPress. Il n'existe aucun chemin de code ici qui appelle
wp_set_password() ou quoi que ce soit de similaire — le mot de passe d'un client reste entièrement géré par l'écran Compte Details du cœur de WordPress.
- Un client ne peut voir ou annuler que ses propres réservations, limitées par son compte connecté directement dans la requête de base de données — jamais par un identifiant provenant de la requête.
- La capacité par créneau est appliquée via une revendication atomique et sûre contre les conditions de concurrence (une contrainte d'unicité en base de données), de sorte que deux clients ne peuvent jamais être tous deux confirmés dans le même créneau au-delà de sa capacité configurée. L'annulation d'une réservation libère correctement son créneau pour réutilisation, tandis que la ligne annulée est conservée pour l'historique d'audit.
Fonctionnalités
- Transformez n'importe quel produit simple en service réservable depuis son propre onglet Données produit > Réservation
- Jours disponibles, créneaux horaires, délai de prévenance et nombre de jours à l'avance configurables
- Capacité par créneau — un créneau cesse d'être proposé une fois plein
- La réservation est confirmée automatiquement lorsque la commande est marquée comme Terminée
- Un onglet « Réservations » sous Mon compte pour consulter et annuler les réservations à venir
- Si un créneau se remplit entre l'ajout au panier et le paiement, la commande se finalise quand même normalement et l'administrateur est averti par e-mail pour aider à reprogrammer — aucune réservation n'est jamais doublement réservée
Limitations (v1)
- Produits simples uniquement — pas de prise en charge des produits à variantes
- Pas d'assignation de personnel/ressources — la capacité d'un créneau est un nombre partagé unique, pas par membre du personnel
- Pas de synchronisation de calendrier (Google Calendar, iCal, etc.)
Installation
- Téléversez l'extension dans
/wp-content/plugins/hdwebmobile-booking-appointments, ou installez-la via l'écran des extensions WordPress.
- Activez l'extension. WooCommerce doit déjà être installé et actif.
- Modifiez un produit simple, ouvrez son nouvel onglet « Réservation » sous Données produit, et configurez la disponibilité.
Licence
GPLv2 ou ultérieure. Voir LICENSE.