= 1.3.0 =
* Ajout : réglage « Couleur d’accent ». Une seule couleur pilote le formulaire de rétractation (timeline, icône, titres, boutons, badges) ainsi que les liens et l’encadré des emails. Les teintes claires et la couleur du texte sur l’accent sont calculées automatiquement.
* Ajout : couleurs propres au bouton de renonciation, celui qui lance le formulaire (fond et texte). Laissées vides, le bouton suit la couleur d’accent. Elles s’appliquent aussi au bouton inséré dans les emails de commande.
* Ajout : icône du formulaire au choix : icône par défaut, image personnalisée issue de la médiathèque, ou aucune icône.
* Ajout : avertissement dans les réglages lorsque la couleur d’accent est trop claire pour rester lisible sur fond blanc.
* Ajout : filtre `wyret_accent_color` pour imposer la couleur depuis un thème.
* Modif : l’onglet « Shortcode » devient « Page de rétractation » et regroupe tout ce qui concerne cette page (shortcode, page, texte d’introduction, apparence, message de confirmation).
* Modif : onglet « Bouton » réorganisé, libellé à gauche et réglages de style à droite.
* Modif : dès qu’une couleur d’accent est réglée, les boutons du formulaire prennent cette couleur même si le thème ou Elementor stylise tous les boutons du site. Sans réglage, le thème garde la main.
* Corr : le bouton inséré dans les emails de commande restait bleu quel que soit le réglage.
* Corr : le thème ou Elementor pouvait dessiner un contour autour des boutons du formulaire.
= 1.2.2 =
* Modif : lorsque tous les produits du panier appartiennent à une catégorie exclue, le checkout affiche désormais le « Message d’exclusion » à l’emplacement de la notice de paiement, au lieu de ne rien afficher. Valable sur le checkout classique et le bloc Checkout, uniquement si la notice de paiement est activée.
* Modif : pour ne rien afficher dans ce cas, videz le champ « Message d’exclusion ».
* Ajout : sur un panier mixte (produits éligibles et produits exclus), une mention sous la notice de paiement liste les produits non éligibles. Texte modifiable dans le nouveau champ « Mention pour panier mixte » (variable `{products}`) ; champ vide = pas de mention.
= 1.2.1 =
* Corr : la notice de paiement (avis pré-contractuel) s’affichait même quand tous les produits du panier appartenaient à une catégorie exclue. Elle est désormais masquée dans ce cas, sur le checkout classique comme sur le bloc Checkout. Un panier mixte (au moins un produit éligible) conserve la notice.
* Corr : les produits variables n’étaient jamais considérés comme exclus (bouton Mon Compte, formulaire, emails). La catégorie est maintenant lue sur le produit parent de la variation.
* Corr : l’intégration du bloc Checkout pouvait ne pas s’enregistrer selon l’ordre de chargement des extensions.
* Modif : la règle d’exclusion par catégorie est centralisée dans une classe unique, partagée par le checkout, Mon Compte, le formulaire et les emails.
= 1.2.0 =
* Ajout : texte de l’encadré de rétractation des emails WooCommerce entièrement personnalisable depuis l’onglet « Emails » (variables `{days}`, `{deadline}`, `{shop_name}`).
* Ajout : balise `{link}…{/link}` — les mots encadrés deviennent un lien vers votre page de rétractation (exemple : `{link}votre droit de rétractation{/link}`). L’adresse est toujours construite côté serveur à partir de la page configurée.
* Ajout : option « Afficher le bouton dans les emails » — décochée, le bouton disparaît des emails et n’est remplacé par rien. Le bouton de Mon Compte n’est pas affecté : le libellé prescrit par le décret n°2026-3 y reste obligatoire.
* Modif : la date limite affichée dans les emails est désormais calculée par le même moteur que Mon Compte (jours ouvrés et jours fériés français). Les deux canaux ne peuvent plus annoncer des dates différentes.
* Corr : bootstrap des tests unitaires pointant vers un chemin `src/` inexistant — la suite ne chargeait aucune classe et n’exécutait donc aucune assertion.
= 1.1.0 =
* Ajout : statut « Annulé » (cancelled) — annulation et restauration d’une demande depuis la liste admin, note de commande WooCommerce à chaque action.
* Ajout : badge de demandes en attente sur l’entrée de menu WooCommerce.
* Modif : liste des demandes fusionnée dans les réglages WyRetract (onglet « Demandes », `?page=wyretract§ion=demandes`) — plus de sous-menu séparé.
* Modif : interface admin entièrement redessinée aux couleurs Wycan (palette `#FF6B35` / `#0B0D0E` / `#C9A96E`) et police Satoshi sur la liste, les réglages, le récépissé et la meta box commande.
* Modif : tous les boutons WP natifs dans l’admin WyRetract uniformisés au style orange Wycan.
* Modif : toutes les chaînes de l’interface admin, les notes de commande WooCommerce, et le libellé du statut de commande traduits directement en français.
* Modif : URL interne des actions (receipt, cancel, restore) mise à jour vers `page=wyretract`.
* Corr : badge `cancelled` absent du récépissé imprimable.
* Corr : variables CSS du meta box non disponibles hors du contexte réglages.
* Corr : icône loupe native Chrome/WebKit s’affichant dans le champ de recherche de la liste.
= 1.0.0 =
* Ajout : formulaire 4 étapes conforme au décret (shortcode `[wyretract_form]`).
* Ajout : accusé de réception horodaté sur support durable (art. D.221-5).
* Ajout : template email natif WooCommerce (header/footer hooks).
* Ajout : statut de commande WooCommerce « Rétractation demandée » (wyret-requested).
* Ajout : meta box HPOS-compatible sur la fiche commande (carte par demande).
* Ajout : notes de commande privées automatiques à la soumission et au changement de statut.
* Ajout : notes internes visibles dans la meta box de commande.
* Ajout : récépissé imprimable autonome (page HTML hors frame WP admin).
* Ajout : bouton 🖨 dans la liste admin par ligne.
* Ajout : liste d’administration avec filtres, export CSV et modal de suivi.
* Ajout : bouton de rétractation dans Mon Compte et page de confirmation.
* Ajout : encadré de rétractation dans les emails de commande WooCommerce.
* Ajout : intégration Freemius SDK (product 32728).
* Ajout : tests unitaires PHPUnit 10 (RateLimit + Settings::sanitize, 55 tests).