
Définir les horaires de commande dans WooCommerce
Gardez le catalogue ouvert, limitez les nouvelles commandes à vos horaires et ajoutez des exceptions pour les jours fériés ou la livraison.
Vous acceptez les commandes pendant vos heures de travail, mais souhaitez laisser les clients consulter les produits et préparer leur panier à toute heure. Ce tutoriel configure une semaine avec pause déjeuner dans Checkout Hours, puis montre comment ajouter un jour férié et des horaires différents pour le retrait ou la livraison avec le Pro.
Ce qu’il faut
- WordPress 6.6+, WooCommerce 9.6+, PHP 7.4+ et les droits de gestion WooCommerce.
- JeyTech Checkout Hours gratuit sur WordPress.org, version 1.0.0 pour ces étapes.
- Une boutique de test pour vérifier les commandes avant d’appliquer les règles en production.
- Pour les dates exceptionnelles et les méthodes d’expédition seulement : Checkout Hours Pro 1.0.0, avec sa licence activée. Le guide d’installation Pro explique l’installation du ZIP et l’activation.
Le gratuit suffit pour les horaires hebdomadaires, les pauses et l’avis hors horaires. Le Pro ajoute les dates et les semaines propres aux méthodes d’expédition. Aucun des deux ne réserve un créneau de retrait, ne choisit une date de livraison ou ne programme le traitement des commandes.
Les captures ci-dessous proviennent de boutiques de test des versions 1.0.0. Leurs réglages illustrent les écrans ; saisissez les horaires de l’exemple dans votre propre boutique. Le français du Pro est inclus. Les libellés français du gratuit dépendent de son pack WordPress.org, dont la validation communautaire est encore en attente.
1. Installer le gratuit et choisir le fuseau horaire
Dans Extensions → Ajouter une extension, recherchez JeyTech Checkout Hours for WooCommerce, installez-le et activez-le avec WooCommerce.
Ouvrez Réglages → Général → Fuseau horaire. Choisissez une ville comme Europe/Paris si la boutique suit les changements d’heure. Un décalage fixe comme UTC+1 ne passe pas automatiquement à l’heure d’été.
Ouvrez ensuite WooCommerce → Checkout Hours. Vérifiez le fuseau et l’heure affichés dans l’aperçu. L’extension est désactivée au départ : son installation ne ferme pas la caisse.
Résultat attendu : le menu est accessible et l’aperçu utilise l’heure de la boutique, pas celle du téléphone du client. Aucune restriction n’est active tant que vous n’avez pas enregistré et activé le planning.
2. Enregistrer une semaine avec pause déjeuner
Dans Weekly schedule, utilisez deux plages pour les jours qui comportent une pause. Le bouton + Add range ajoute une ligne au même jour.
| Jour | Première plage | Deuxième plage |
|---|---|---|
| Lundi à vendredi | 09:00 à 12:00 | 14:00 à 18:00 |
| Samedi | 10:00 à 13:00 | Aucune |
| Dimanche | Aucune | Aucune |
Saisissez les heures au format HH:MM sur 24 heures. Laissez les lignes d’un jour sans horaire pour le fermer. Dans Enable checkout hours, activez le planning, puis cliquez sur Save checkout hours. L’aperçu se base sur les réglages enregistrés, pas sur une modification encore dans le formulaire.
Le début est inclus, la fin exclue. Dans cet exemple, une commande est autorisée à 09:00, mais plus à 12:00 ; les commandes reprennent à 14:00. Les plages qui se chevauchent ne peuvent pas être enregistrées. Une saisie invalide conserve la configuration précédente.
Pour une activité de nuit, 22:00 à 02:00 se prolonge jusqu’au lendemain. Pour une journée complète, utilisez 00:00 à 24:00. Tenez compte d’une éventuelle plage de nuit provenant du jour précédent quand vous vérifiez un jour laissé vide.
Résultat attendu : la semaine enregistrée accepte les commandes dans les plages choisies, avec une pause de deux heures en semaine. Le catalogue et l’ajout au panier restent disponibles hors de ces plages.

3. Choisir le blocage et informer les clients
Dans Outside order hours, choisissez Block checkout si vous voulez refuser les nouvelles commandes hors horaires. L’autre mode, Allow orders with a warning, accepte les commandes normalement et affiche un avertissement. Il ne reporte ni leur paiement ni leur traitement au lendemain.
Pour afficher un avis de fermeture sur le site, activez Show a sitewide closed-hours notice, puis enregistrez. Vous pouvez aussi insérer le code court [jeytech_checkout_hours] dans une page via un bloc Code court. Le bandeau global nécessite un thème qui prend en charge wp_body_open.
La décision finale est prise sur le serveur, en caisse classique comme en caisse à blocs. L’avis est actualisé avec JavaScript depuis un point de statut local sans cache. Une page ouverte avant la fermeture ne donne pas le droit de commander après celle-ci. Si votre CDN impose son propre cache, excluez ce point de statut pour respecter ses en-têtes no-store.
Résultat attendu : en mode blocage, une tentative hors horaires est refusée, mais le panier reste disponible. Le paiement d’une commande déjà existante reste possible.

4. Ajouter un jour férié et des horaires de livraison avec Pro
Cette étape est facultative. Gardez le gratuit actif et son planning activé. Après installation du Pro et activation de sa licence, ouvrez WooCommerce → Checkout Hours Pro.
Dans Exceptions calendaires, ajoutez deux dates :
| Date | Configuration |
|---|---|
| 25 décembre 2026 | Cochez Fermé toute la journée. |
| 31 décembre 2026 | Laissez la fermeture décochée et saisissez 09:00-13:00 dans Plages d’ouverture. |
Cliquez sur Enregistrer la configuration. Une exception remplace la journée locale entière, y compris la partie de nuit qui vient du jour précédent. Les dates ne sont pas des jours fériés récurrents : ajoutez celles de l’année suivante. Pour garantir le refus de toutes les nouvelles commandes ce jour-là, choisissez le mode blocage. En mode avertissement, les règles globales autorisent les commandes avec un avis ; une méthode soumise à une règle Pro fermée reste refusée.
Pour des horaires différents selon l’expédition, créez ou repérez les méthodes actives dans vos zones WooCommerce. Par exemple, une instance Retrait sur place et une instance Forfait renommée « Livraison express ». Le nom express est ici un libellé de boutique, pas une intégration avec un transporteur.
Dans Horaires des modes de livraison, choisissez chaque Zone / mode / instance. Renseignez les jours actifs de sa semaine :
| Instance de l’exemple | Lundi à vendredi | Samedi | Dimanche |
|---|---|---|---|
| Retrait sur place | 09:00-12:00, 14:00-19:00 |
10:00-13:00 |
Vide |
| Livraison express | 09:00-12:00, 14:00-16:00 |
10:00-13:00 |
Vide |
Enregistrez. La semaine d’une méthode configurée remplace la semaine du gratuit pour cette instance : le retrait peut donc rester ouvert jusqu’à 19:00 dans cet exemple. Une méthode sans règle hérite de la semaine du gratuit. Les dates globales passent avant ces semaines. Les horaires par méthode restent stricts même en mode global avertissement, et tous les colis d’un panier doivent avoir une sélection ouverte au même instant.
Résultat attendu : hors exception datée, la livraison express ferme à 16:00 et le retrait reste possible jusqu’à 19:00. En mode blocage, aucune méthode ne permet de contourner le 25 décembre fermé. Le 31 décembre suit la plage exceptionnelle de 09:00 à 13:00.

5. Vérifier les commandes avant la mise en production
Utilisez une boutique de test et un moyen de paiement de test. N’envoyez pas d’argent pour vérifier les horaires. Répétez les cas applicables en caisse classique et en caisse à blocs.
| Cas à tester | Résultat attendu en mode blocage |
|---|---|
| Un jour de semaine à 09:00 | Nouvelle commande autorisée. |
| Le même jour à 12:00 | Nouvelle commande refusée pendant la pause. |
| Le même jour à 14:00 | Commandes de nouveau autorisées. |
| Sans Pro, le même jour à 18:00 | Nouvelle commande refusée. |
| Avec les règles Pro, express à 16:00 | Cette sélection est fermée ; essayez le retrait encore ouvert. |
| Avec les règles Pro, retrait à 19:00 | Cette sélection est fermée. |
| Avec Pro, le 25 décembre 2026 | Nouvelles commandes refusées toute la journée. |
| Page ouverte avant fermeture, soumise après | La validation finale applique l’heure de soumission. |
Vérifiez aussi que les produits restent consultables, que le panier n’est pas vidé et que le paiement d’une commande existante n’est pas bloqué. Après un changement de fuseau ou de méthode d’expédition, refaites les cas concernés. Pour un panier à plusieurs colis, testez chaque combinaison réellement utilisée par votre boutique.
Résultat attendu : les nouvelles commandes respectent le planning enregistré et le mode choisi. Le gratuit et le Pro ne ferment pas le catalogue et ne servent pas à programmer une livraison.
Si le résultat ne correspond pas au planning
| Situation | À vérifier |
|---|---|
| Les commandes passent après fermeture | Planning activé, mode blocage plutôt qu’avertissement, bon fuseau et absence de règle Pro qui ouvre cette méthode. |
| L’aperçu n’a pas changé | Enregistrez le formulaire ; l’aperçu utilise la configuration enregistrée. |
| Un jour vide semble ouvert la nuit | Vérifiez la plage qui arrive du jour précédent. Une exception Pro fermée remplace la journée entière. |
| Le 25 décembre n’est pas bloqué | Date et année correctes, licence Pro localement activée, gratuit activé et mode blocage. |
| Une méthode conserve le mauvais horaire | Bonne instance de zone, pas seulement le même type de méthode ; supprimez les règles d’instances devenues indisponibles. |
| L’avis affiche un ancien état | JavaScript actif et point de statut exclu du cache imposé par le CDN ; testez aussi la validation réelle de commande. |
Pour commencer, installez Checkout Hours gratuit ou consultez sa fiche JeyTech. Si vous avez besoin des dates et des horaires par méthode, les offres Checkout Hours Pro sont 59 € par an pour 1 boutique, 149 € pour 5 et 299 € pour 25, sans quota de commandes. Le guide d’installation Pro détaille les licences, les mises à jour et le déplacement d’une boutique.
