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).
Un sélecteur de date épuré au checkout, qui n'affiche que les jours livrables. Date d'expédition ou de livraison, au choix.
Cut-off, préparation, transit, jours de ramasse, jours non livrables, fériés FR et DLC depuis l'expédition.
Gère les commandes scindées en plusieurs colis (Chronofresh + Chronopost) : date commune ou pilotée par le frais.
Prérequis
| Composant | Minimum | Recommandé |
|---|---|---|
| WordPress | 6.0 | 6.5+ |
| WooCommerce | 7.0 | 10.0+ |
| PHP | 7.4 | 8.2+ |
| WooChrono (optionnel) | 3.2.4+ pour l'injection de la date dans l'étiquette Chronopost | |
Installation
woochrono-delivery-date.zip depuis votre espace client sur woochrono.com.Delivery Date → Licence — collez votre clé d'activation pour débloquer les mises à jour.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
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.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églage | Description |
|---|---|
| Activation globale | Active 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. |
| Horizon | Profondeur maximale de la fenêtre de dates proposées (30 jours par défaut). |
Délais de calcul
Trois leviers indépendants déterminent la première date proposée, puis la date de livraison estimée.
| Réglage | Rô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éparation | Nombre de jours (de ramasse) nécessaires avant l'expédition. |
| Transit | Nombre de jours (livrables) entre l'expédition et la livraison. |
Jours de ramasse & jours non livrables
Deux réglages distincts, car l'expédition et la livraison ne suivent pas le même calendrier.
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 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.
Jours fériés & fermetures
Les jours fériés sont exclus à la fois de la ramasse et de la livraison.
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.
Ajoutez vos propres fermetures exceptionnelles (congés, ponts, inventaire), ou les fériés régionaux (Alsace-Moselle) non couverts par la liste nationale.
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églage | Description |
|---|---|
| Respecter la DLC | Borne 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. |
Réglages par méthode
Chaque méthode de livraison WooCommerce peut hériter du global ou définir ses propres délais.
| Activation | Effet |
|---|---|
| Selon global | La méthode suit l'activation et les délais globaux. |
| Forcée OUI | Sélecteur toujours actif pour cette méthode. |
| Forcée NON | Sélecteur masqué pour cette méthode (ex. retrait en magasin). |
Au checkout
_wcdd_ship_date / _wcdd_delivery_estimate).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.
| Mode | Comportement |
|---|---|
| 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 frais | La date suit toujours le flux le plus contraint (le frais, porteur de la DLC) ; les autres articles s'alignent au plus proche. |
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éthode | Exemples | Sélecteur |
|---|---|---|
| Créneau précis | Chrono Precise, Ambient Precise | Masqué |
| Rendez-vous | Chrono RDV (fresh / freeze) | Masqué |
| Jour même | Same Day (fresh / freeze / ambient) | Masqué |
| Standard | Chrono Relais, Chrono 13, domicile… | Affiché |
precise / rdv / sameday). Dans une commande fractionnée, seule la sous-commande concernée est exclue ; les colis standard gardent leur date.Affichage de la date
La date choisie remonte là où vos équipes et vos clients la cherchent.
| Emplacement | Contenu |
|---|---|
| Commande (admin) | Encart « Date de livraison » avec expédition souhaitée et livraison estimée. |
| Emails | Ligne ajoutée aux emails de confirmation de commande. |
| Client | Page « Mon compte » et page de remerciement. |
É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+).
| Cas | Comportement |
|---|---|
| Commande simple | La 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-vous | Aucune injection : la méthode garde sa propre date (créneau / RDV). |
Sécurité
| Vecteur | Protection appliquée |
|---|---|
| Accès direct PHP | defined('ABSPATH') dans tous les fichiers + index.php de silence dans chaque dossier |
| CSRF | Nonce 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 |
| XSS | esc_html() / esc_attr() sur les sorties |
| Données | Lectures / écritures de commande via les CRUD WooCommerce (jamais d'accès direct à la base) |
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.
Performance
| Optimisation | Détail |
|---|---|
| Assets ciblés | CSS / JS chargés uniquement au checkout, minifiés, avec cache-bust automatique (filemtime). |
| Mise en cache | Calculateur de dates et jours fériés mis en cache ; vérification de mise à jour en transient 12 h. |
| Options allégées | Réglages en autoload « non » : chargés au checkout et en admin, pas sur toutes les pages du site. |
| JS robuste | Délégation d'événements stable, debounce des rafraîchissements, état de pagination dans le DOM. |
Compatibilité HPOS
WooChrono Delivery Date est entièrement compatible avec le High Performance Order Storage de WooCommerce.
FeaturesUtil::declare_compatibility). Toutes les opérations de commande passent par wc_get_order() et les CRUD, compatibles wc_orders.FAQ
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+).
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.
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.
Ces méthodes gèrent leur propre date : le sélecteur s'efface automatiquement, sans conflit, y compris dans une commande fractionnée.
Oui par défaut : seul le dimanche est non livrable. Vous pouvez ajuster les jours non livrables dans les réglages.
Changelog
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).