1

Introduction

WooChrono Delivery Date ajoute au checkout WooCommerce un sélecteur de date de livraison moderne, qui ne propose que des dates réellement tenables. Le moteur tient compte de l'heure limite de commande, du délai de préparation, du transit, de vos jours de ramasse et des jours non livrables — et, pour les produits frais, de la date limite de consommation (DLC).

Côté client

Un sélecteur de date épuré au checkout, qui n'affiche que les jours livrables. Date d'expédition ou de livraison, au choix.

Calcul intelligent v1.6

Cut-off, préparation, transit, jours de ramasse, jours non livrables, fériés FR et DLC depuis l'expédition.

Frais + sec

Gère les commandes scindées en plusieurs colis (Chronofresh + Chronopost) : date commune ou pilotée par le frais.

Le plugin fonctionne avec WooCommerce seul. Si WooChrono (Chronopost / Fresh) est installé, ses méthodes de livraison sont reconnues, configurables par méthode, et la date choisie peut être injectée dans l'étiquette de transport.
2

Prérequis

ComposantMinimumRecommandé
WordPress6.06.5+
WooCommerce7.010.0+
PHP7.48.2+
WooChrono (optionnel)3.2.4+ pour l'injection de la date dans l'étiquette Chronopost
Aucune API tierce, aucun service externe payant. Le calcul des dates et des jours fériés est 100 % local.
3

Installation

1
Télécharger le ZIP
Récupérez woochrono-delivery-date.zip depuis votre espace client sur woochrono.com.
2
Installer via WordPress
Extensions → Ajouter → Téléverser une extension, sélectionnez le ZIP, cliquez Installer.
3
Activer le plugin
Cliquez sur Activer l'extension. Un menu « Delivery Date » apparaît dans l'administration.
4
Saisir la licence
Delivery Date → Licence — collez votre clé d'activation pour débloquer les mises à jour.
5
C'est actif
Le sélecteur de date est proposé d'office au checkout. Ajustez ensuite les délais selon vos besoins.
Actif dès l'installation : sur une installation neuve, le sélecteur apparaît immédiatement sur toutes les méthodes (avec les délais par défaut), sans configuration obligatoire.
4

Licence

La licence active les mises à jour automatiques et le support. Le fonctionnement du sélecteur n'est jamais bloqué : seules les mises à jour sont suspendues sans licence active.

Activer

Chemin : Delivery Date → Licence

1
Coller la clé de licence
Clé reçue par email après achat (également disponible dans votre espace client sur woochrono.com).
2
Valider
Cliquez sur Valider. Une confirmation apparaît en vert ; les mises à jour deviennent disponibles.
Les mises à jour sont distribuées via un fichier info.json hébergé sur woochrono.com ; la notification de nouvelle version s'affiche dans l'admin, le téléchargement est réservé aux licences actives.
5

Réglages généraux

Chemin : Delivery Date → Réglages. Les réglages globaux s'appliquent à toutes les méthodes, sauf si une méthode définit ses propres valeurs (voir §10).

RéglageDescription
Activation globaleActive le sélecteur sur toutes les méthodes « selon global ». Activé par défaut
Que choisit le client ?Le client choisit une date d'expédition ou une date de livraison estimée. En interne, la date d'expédition est toujours enregistrée sur la commande.
HorizonProfondeur maximale de la fenêtre de dates proposées (30 jours par défaut).
6

Délais de calcul

Trois leviers indépendants déterminent la première date proposée, puis la date de livraison estimée.

Cut-off
Préparation
Transit
Date proposée
RéglageRôle
Heure limite (cut-off)Heure au format HH:MM au-delà de laquelle la commande est traitée le jour de ramasse suivant.
PréparationNombre de jours (de ramasse) nécessaires avant l'expédition.
TransitNombre de jours (livrables) entre l'expédition et la livraison.
Le moteur part d'aujourd'hui, décale si le cut-off est dépassé, n'expédie que les jours de ramasse, saute les fériés et jours non livrables pour le transit, puis applique la borne DLC. Aucune date « impossible » n'est jamais proposée.
7

Jours de ramasse & jours non livrables

Deux réglages distincts, car l'expédition et la livraison ne suivent pas le même calendrier.

Jours de ramasse

Liste blanche globale des jours où le transporteur collecte chez vous (ex. mardi + jeudi). L'expédition n'a lieu que ces jours-là. Par défaut : lundi à vendredi.

Jours non livrables

Jours où le transporteur ne livre pas, utilisés pour le transit. Par défaut : dimanche seul — le samedi est livrable. Les fériés sont exclus automatiquement.

Ne confondez pas les deux : restreindre les jours de ramasse (ex. mar/jeu) ne réduit pas les jours de livraison. Un colis expédié le jeudi peut être livré le samedi.
8

Jours fériés & fermetures

Les jours fériés sont exclus à la fois de la ramasse et de la livraison.

Fériés français Auto

Les 11 fériés nationaux, avec calcul automatique des dates mobiles (Pâques, Ascension, Pentecôte) par l'algorithme de Meeus. La liste des fériés à venir est affichée pour vérification.

Dates fermées additionnelles

Ajoutez vos propres fermetures exceptionnelles (congés, ponts, inventaire), ou les fériés régionaux (Alsace-Moselle) non couverts par la liste nationale.

9

DLC produits frais

Pour les produits frais et surgelés, le plugin garantit une livraison avant péremption.

Réglage produit

Sur la fiche produit, renseignez la durée de conservation en jours dans le champ expiry_date_input (le même que WooChrono Fresh). C'est la DLC à compter de l'expédition.

RéglageDescription
Respecter la DLCBorne la fenêtre de dates : aucune date dont la livraison dépasserait la DLC. Activé par défaut
Marge de sécuritéLa livraison doit précéder la DLC d'au moins N jour(s). Réglable globalement et par méthode. 1 jour par défaut.
La DLC court à partir de l'expédition, en jours calendaires (week-end inclus), exactement comme sur l'étiquette Chronopost. Exemple : avec une DLC de 3 jours, une expédition le vendredi dont la livraison tomberait le lundi (pile sur la DLC) est exclue grâce à la marge.
10

Réglages par méthode

Chaque méthode de livraison WooCommerce peut hériter du global ou définir ses propres délais.

ActivationEffet
Selon globalLa méthode suit l'activation et les délais globaux.
Forcée OUISélecteur toujours actif pour cette méthode.
Forcée NONSélecteur masqué pour cette méthode (ex. retrait en magasin).
Préparation, cut-off, transit et marge de sécurité DLC se règlent méthode par méthode. Vous pouvez proposer un point relais à J+2 et un express surgelés à J+0 dans le même panier.
11

Au checkout

1
Le sélecteur s'affiche
Sous la méthode de livraison, un carrousel de dates regroupées par semaine, avec navigation prev/next.
2
Seules les dates tenables
Les jours non livrables, fériés, hors ramasse ou au-delà de la DLC ne sont pas proposés.
3
Choix du client
Le client sélectionne une date ; un encart confirme l'expédition ou la livraison estimée selon le réglage.
4
Enregistrement
La date est validée et stockée sur la commande (_wcdd_ship_date / _wcdd_delivery_estimate).
Le sélecteur reste fonctionnel après chaque changement de méthode de livraison (rafraîchissement du checkout), y compris pour les commandes multi-colis : les clics restent toujours actifs.

Commandes frais + sec

Quand un panier mixte est scindé en plusieurs colis (par WooChrono : Chronofresh pour le frais, Chronopost pour le sec), une seule date doit être présentée au client. Deux comportements au choix.

ModeComportement
Date commune (défaut)Les colis sont préparés et expédiés ensemble : on ne propose que les dates possibles pour tous (contrainte la plus stricte de chaque colis, DLC la plus courte). Si aucune date commune n'existe, bascule automatique sur le produit le plus sensible.
Pilotée par le fraisLa date suit toujours le flux le plus contraint (le frais, porteur de la DLC) ; les autres articles s'alignent au plus proche.
Au moment du split, chaque sous-commande reçoit automatiquement la bonne date (encart commande + étiquette). Les sous-commandes à date imposée (rendez-vous / créneau) en sont exclues — voir section suivante.

Méthodes à rendez-vous

Certaines méthodes gèrent leur propre date et ne doivent pas afficher le sélecteur Delivery Date : créneau précis, prise de rendez-vous, livraison le jour même.

Type de méthodeExemplesSélecteur
Créneau précisChrono Precise, Ambient PreciseMasqué
Rendez-vousChrono RDV (fresh / freeze)Masqué
Jour mêmeSame Day (fresh / freeze / ambient)Masqué
StandardChrono Relais, Chrono 13, domicile…Affiché
La détection est automatique (par motif precise / rdv / sameday). Dans une commande fractionnée, seule la sous-commande concernée est exclue ; les colis standard gardent leur date.
12

Affichage de la date

La date choisie remonte là où vos équipes et vos clients la cherchent.

EmplacementContenu
Commande (admin)Encart « Date de livraison » avec expédition souhaitée et livraison estimée.
EmailsLigne ajoutée aux emails de confirmation de commande.
ClientPage « Mon compte » et page de remerciement.
13

Étiquette Chronopost

Si WooChrono 3.2.4+ est présent, la date choisie peut être transmise au système d'étiquette Chronopost.

Activer l'injection

Réglages globaux → « Injecter la date dans l'étiquette Chronopost ». Activé par défaut (effectif uniquement avec WooChrono 3.2.4+).

CasComportement
Commande simpleLa date d'expédition est injectée à la génération de l'étiquette.
Sous-commande (split)Chaque sous-commande reçoit sa date au moment du split, puis l'injecte.
Méthode à rendez-vousAucune injection : la méthode garde sa propre date (créneau / RDV).
La propagation des dates vers les sous-commandes a lieu au moment du split (validation de commande). Les commandes splitées avant activation ne sont pas mises à jour rétroactivement.
14

Sécurité

VecteurProtection appliquée
Accès direct PHPdefined('ABSPATH') dans tous les fichiers + index.php de silence dans chaque dossier
CSRFNonce WP sur le handler AJAX (check_ajax_referer) et les formulaires admin (check_admin_referer)
Accès non autoriséCapacité manage_woocommerce vérifiée avant chaque enregistrement de réglages
XSSesc_html() / esc_attr() sur les sorties
DonnéesLectures / écritures de commande via les CRUD WooCommerce (jamais d'accès direct à la base)
15

RGPD & données personnelles

  • Les dates enregistrées sur les commandes sont intégrées à l'exporteur et à l'effaceur de données personnelles natifs de WordPress (Outils → Exporter / Effacer les données personnelles).
  • Un texte prêt à l'emploi est ajouté à votre politique de confidentialité (Réglages → Confidentialité).
  • Stockage 100 % local sur votre serveur WordPress.
  • Aucune donnée client transmise à des tiers. Les seules communications externes (validation de licence et mises à jour) se font avec woochrono.com.
Conçu pour être conforme à votre DPO et à la CNIL par défaut.
16

Performance

OptimisationDétail
Assets ciblésCSS / JS chargés uniquement au checkout, minifiés, avec cache-bust automatique (filemtime).
Mise en cacheCalculateur de dates et jours fériés mis en cache ; vérification de mise à jour en transient 12 h.
Options allégéesRéglages en autoload « non » : chargés au checkout et en admin, pas sur toutes les pages du site.
JS robusteDélégation d'événements stable, debounce des rafraîchissements, état de pagination dans le DOM.
17

Compatibilité HPOS

WooChrono Delivery Date est entièrement compatible avec le High Performance Order Storage de WooCommerce.

Compatibilité déclarée explicitement (FeaturesUtil::declare_compatibility). Toutes les opérations de commande passent par wc_get_order() et les CRUD, compatibles wc_orders.
?

FAQ

Le plugin fonctionne-t-il sans WooChrono ?

Oui, totalement. WooCommerce est la seule dépendance. WooChrono ajoute la reconnaissance des méthodes Chronopost et l'injection de la date dans l'étiquette (3.2.4+).

Pourquoi peu de dates sont proposées sur un produit frais ?

C'est la DLC : la fenêtre est bornée par la durée de conservation (depuis l'expédition) et la marge de sécurité. Vérifiez la valeur expiry_date_input du produit, ou ajustez la marge.

Je vends du frais ET du sec, comment ça se passe ?

Sur une commande scindée en plusieurs colis, le plugin propose une date d'expédition commune ou pilotée par le frais (au choix), et propage la bonne date à chaque sous-commande.

Et avec Chrono Precise / RDV / Same Day ?

Ces méthodes gèrent leur propre date : le sélecteur s'efface automatiquement, sans conflit, y compris dans une commande fractionnée.

Le samedi est-il livrable ?

Oui par défaut : seul le dimanche est non livrable. Vous pouvez ajuster les jours non livrables dans les réglages.

Changelog

1.6.0Juin 2026

Sécurité, performance & conformité

  • RGPD : exporteur et effaceur de données personnelles, texte de politique de confidentialité.
  • Performance : mise en cache des jours fériés, options en autoload « non ».
  • Sécurité : fichiers de silence, confirmation des protections (nonces, droits, échappement).