{"id":232,"date":"2026-01-20T00:00:00","date_gmt":"2026-01-19T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/fr\/woocommerce-10-5-ce-qui-change-pour-les-developpeurs\/"},"modified":"2026-01-20T00:00:00","modified_gmt":"2026-01-19T23:00:00","slug":"woocommerce-10-5-ce-qui-change-pour-les-developpeurs","status":"publish","type":"post","link":"https:\/\/helloblog.io\/fr\/woocommerce-10-5-ce-qui-change-pour-les-developpeurs\/","title":{"rendered":"WooCommerce 10.5 : ce qui change vraiment c\u00f4t\u00e9 dev (imports Analytics, Checkout block, API et perfs)"},"content":{"rendered":"\n<p>WooCommerce 10.5 est dans la phase de test et la version finale est annonc\u00e9e pour d\u00e9but f\u00e9vrier 2026. Si tu maintiens un site e-commerce \u00e0 fort trafic, un plugin WooCommerce ou une int\u00e9gration sur mesure, cette release m\u00e9rite un vrai passage en revue : elle touche \u00e0 la fois au pipeline Analytics, \u00e0 l\u2019exp\u00e9rience checkout (blocs), \u00e0 la robustesse sur des donn\u00e9es fiscales legacy, et \u00e0 plusieurs chantiers performance avec des fonctionnalit\u00e9s exp\u00e9rimentales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Calendrier de release (et comment tester)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Feature Freeze : 12 janvier 2026<\/li>\n\n\n<li>WooCommerce 10.5 Beta 1 : 19 janvier 2026<\/li>\n\n\n<li>WooCommerce 10.5 Beta 2 : 26 janvier 2026<\/li>\n\n\n<li>Release finale WooCommerce 10.5 : pr\u00e9vue le 4 f\u00e9vrier 2026<\/li>\n\n<\/ul>\n\n\n\n<p>Pour tester les b\u00eatas, l\u2019\u00e9quipe recommande d\u2019utiliser le plugin <a href=\"https:\/\/woocommerce.com\/products\/woocommerce-beta-tester\/\">WooCommerce Beta Tester<\/a>, qui permet d\u2019installer facilement les versions beta sur un environnement de test.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les nouveaut\u00e9s principales de WooCommerce 10.5 (celles qui impactent le code)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) Analytics : nouvel import \u201cScheduled Imports\u201d par d\u00e9faut (gros changement)<\/h3>\n\n\n\n<p>Le changement le plus structurant de 10.5 concerne la fa\u00e7on dont WooCommerce alimente les tables Analytics \u00e0 partir des \u00e9v\u00e9nements de commandes.<\/p>\n\n\n\n<p>Avant 10.5, WooCommerce d\u00e9clenchait un job d\u2019import Analytics <em>pour chaque \u00e9v\u00e9nement de commande<\/em> via ActionScheduler. M\u00eame si c\u2019est asynchrone, sur les boutiques actives \u00e7a se traduisait par des backlogs \u00e9normes (10 000+ actions), avec d\u00e9gradation performance, contention base de donn\u00e9es, et ralentissements visibles c\u00f4t\u00e9 site.<\/p>\n\n\n\n<p>Avec 10.5, WooCommerce bascule par d\u00e9faut sur <strong>Scheduled Imports<\/strong> : un traitement par lots (batch processing) qui rafra\u00eechit les donn\u00e9es Analytics <strong>toutes les 12 heures<\/strong> et traite <strong>100 commandes par lot<\/strong>. L\u2019objectif est clair : r\u00e9duire drastiquement le volume d\u2019actions planifi\u00e9es et la charge en base, tout en donnant plus de visibilit\u00e9 sur l\u2019\u00e9tat de l\u2019import et la possibilit\u00e9 de lancer un import manuellement \u00e0 tout moment.<\/p>\n\n\n\n<p>Deux nouveaux filtres permettent d\u2019ajuster ce comportement :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>woocommerce_analytics_import_interval<\/code> : pour personnaliser l\u2019intervalle (par d\u00e9faut 12 heures).<\/li>\n\n\n<li><code>woocommerce_analytics_regenerate_batch_size<\/code> : pour personnaliser la taille des lots (par d\u00e9faut 100 commandes).<\/li>\n\n<\/ul>\n\n\n\n<p>R\u00e9f\u00e9rence : <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61603\">#61603<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2) Checkout block : UI des options de livraison am\u00e9lior\u00e9e (multi-colis, abonnements)<\/h3>\n\n\n\n<p>Le bloc Checkout re\u00e7oit une am\u00e9lioration de l\u2019interface des options de livraison : lorsqu\u2019il y a plusieurs colis (cas fr\u00e9quent avec certains produits d\u2019abonnement), l\u2019UI affiche d\u00e9sormais des miniatures produit et des conteneurs bord\u00e9s pour mieux distinguer les paquets.<\/p>\n\n\n\n<p>Cette \u00e9volution corrige aussi un bug de synchronisation des m\u00e9thodes de livraison lors du basculement entre les options de type <strong>Ship<\/strong> (exp\u00e9dition) et <strong>Pickup<\/strong> (retrait).<\/p>\n\n\n\n<p>R\u00e9f\u00e9rence : <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61625\">#61625<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3) Commandes : meilleure robustesse face \u00e0 des taxes legacy\/corrompues<\/h3>\n\n\n\n<p>WooCommerce 10.5 renforce la fiabilit\u00e9 d\u2019affichage\/traitement des commandes qui contiennent des donn\u00e9es de taxes au format \u201clegacy\u201d ou carr\u00e9ment corrompu &#8211; typiquement quand des valeurs de taxes ont \u00e9t\u00e9 stock\u00e9es sous forme de floats\/strings au lieu de tableaux.<\/p>\n\n\n\n<p>Le correctif ajoute une gestion r\u00e9trocompatible sur <strong>tous les types d\u2019items de commande<\/strong> (produits, livraison, frais), avec une logique qui d\u00e9duit intelligemment les IDs de taux de taxe \u00e0 partir du contexte de la commande.<\/p>\n\n\n\n<p>Un filtre est introduit pour injecter une logique de conversion personnalis\u00e9e : <code>woocommerce_order_item_legacy_tax_conversion<\/code>.<\/p>\n\n\n\n<p>R\u00e9f\u00e9rence : <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62271\">#62271<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4) CSS : styles Select2 d\u00e9sormais \u201cscop\u00e9s\u201d pour \u00e9viter les effets de bord<\/h3>\n\n\n\n<p>WooCommerce charge des styles Select2 (biblioth\u00e8que de select enrichi). En 10.5, ces styles sont maintenant scop\u00e9s via <code>:where(.woocommerce)<\/code> afin d\u2019\u00e9viter qu\u2019ils \u201cd\u00e9bordent\u201d sur l\u2019interface d\u2019autres plugins.<\/p>\n\n\n\n<p>Point int\u00e9ressant c\u00f4t\u00e9 CSS : l\u2019utilisation de la pseudo-classe <code>:where()<\/code> conserve une sp\u00e9cificit\u00e9 nulle, ce qui aide \u00e0 pr\u00e9server les surcharges CSS existantes tout en emp\u00eachant l\u2019impact global sur le reste de l\u2019admin ou du front.<\/p>\n\n\n\n<p>R\u00e9f\u00e9rence : <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61956\">#61956<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5) Taxes livraison : nouveau filtre <code>woocommerce_shipping_tax_class<\/code> (calcul dynamique)<\/h3>\n\n\n\n<p>WooCommerce 10.5 introduit un nouveau filtre : <code>woocommerce_shipping_tax_class<\/code>. Il permet de calculer dynamiquement la taxation de la livraison en fonction :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>du contenu du panier,<\/li>\n\n\n<li>items des donn\u00e9es client,<\/li>\n\n\n<li>et de la localisation.<\/li>\n\n<\/ul>\n\n\n\n<p>Concr\u00e8tement, tu peux impl\u00e9menter une logique sur mesure comme : calculer la taxe de livraison \u00e0 partir du taux de taxe pr\u00e9dominant dans le panier. C\u2019est pr\u00e9sent\u00e9 comme une solution flexible pour des sc\u00e9narios fiscaux complexes (exemple cit\u00e9 : exigences sp\u00e9cifiques aux Pays-Bas).<\/p>\n\n\n\n<p>R\u00e9f\u00e9rence : <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62040\">#59512<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changements API et advisories \u00e0 conna\u00eetre<\/h2>\n\n\n\n<p>En plus des nouveaut\u00e9s \u201cfonctionnelles\u201d, 10.5 embarque plusieurs changements d\u00e9j\u00e0 d\u00e9taill\u00e9s dans des posts d\u2019advisory. Voici ce qu\u2019il faut retenir (avec les liens pour le contexte complet).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">WC REST API : d\u00e9codage correct des caract\u00e8res sp\u00e9ciaux sur les attributs de variations<\/h3>\n\n\n\n<p>La WC REST API g\u00e8re d\u00e9sormais correctement le <strong>d\u00e9codage des caract\u00e8res sp\u00e9ciaux<\/strong> pour les attributs de variations produit. D\u00e9tail complet : https:\/\/developer.woocommerce.com\/2026\/01\/14\/wc-rest-api-fixes-for-product-variation-attributes-with-special-characters-in-woocommerce-10-5\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Suppression du trait <code>AccessiblePrivateMethods<\/code><\/h3>\n\n\n\n<p>Le trait <code>AccessiblePrivateMethods<\/code> va \u00eatre supprim\u00e9. Il appartenait au namespace <code>Internal<\/code>, ce qui signalait justement qu\u2019il n\u2019\u00e9tait pas destin\u00e9 \u00e0 une consommation publique. Le risque : certaines extensions l\u2019utilisaient malgr\u00e9 tout, et pourront casser avec 10.5. Contexte : https:\/\/developer.woocommerce.com\/2026\/01\/15\/removal-of-the-accessibleprivatemethods-trait-in-woocommerce-10-5\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Permaliens produit bas\u00e9s sur les cat\u00e9gories : changement de priorisation (SEO\/consistance)<\/h3>\n\n\n\n<p>Les permaliens produits construits \u00e0 partir des cat\u00e9gories vont \u00eatre ajust\u00e9s : WooCommerce priorise d\u00e9sormais la <strong>cat\u00e9gorie la plus profonde<\/strong> pour am\u00e9liorer la coh\u00e9rence des URLs et le SEO. Attention : cela n\u2019affecte que certaines structures de permaliens. D\u00e9tails : https:\/\/developer.woocommerce.com\/2026\/01\/13\/product-permalink-changes-coming-in-woocommerce-10-5\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Produits variables : bouton \u201cAdd to Cart\u201d d\u00e9sactiv\u00e9 tant que le script de variations n\u2019est pas charg\u00e9<\/h3>\n\n\n\n<p>Sur les pages produit variable, WooCommerce s\u2019assure maintenant que le bouton <strong>Add to Cart<\/strong> reste <strong>d\u00e9sactiv\u00e9<\/strong> tant que le script de variations n\u2019a pas fini de se charger. Avant, sur des connexions lentes, un utilisateur pouvait cliquer trop t\u00f4t (avant l\u2019initialisation de la logique de s\u00e9lection), ce qui menait \u00e0 des soumissions en \u00e9chec. D\u00e9tails : https:\/\/developer.woocommerce.com\/2026\/01\/16\/add-to-cart-button-disabled-by-default-in-variable-products-in-woocommerce-10-5\/<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Performance : ce que 10.5 am\u00e9liore (et ce qui arrive en exp\u00e9rimental)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Un cache REST API exp\u00e9rimental (nouveau)<\/h3>\n\n\n\n<p>WooCommerce 10.5 introduit un <strong>cache REST API exp\u00e9rimental<\/strong>, applicable \u00e0 n\u2019importe quel endpoint de la WC REST API. L\u2019annonce pr\u00e9cise que plus d\u2019informations (dont la mani\u00e8re de tester) seront partag\u00e9es avant la sortie 10.5.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Am\u00e9liorations sur le cache des prix de variations + utilitaire pour callbacks<\/h3>\n\n\n\n<p>Le cache des prix de variations (cached variation prices) re\u00e7oit des am\u00e9liorations, et une nouvelle classe utilitaire arrive pour travailler avec des callbacks. D\u00e9tails : https:\/\/developer.woocommerce.com\/2026\/01\/08\/variation-prices-caching-improvements-in-woocommerce-10-5\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Product Object Caching exp\u00e9rimental (par requ\u00eate)<\/h3>\n\n\n\n<p>10.5 ajoute aussi un <strong>Product Object Caching<\/strong> exp\u00e9rimental : l\u2019id\u00e9e est de mettre en cache des instances produit pendant la dur\u00e9e d\u2019une requ\u00eate afin d\u2019\u00e9viter des chargements dupliqu\u00e9s depuis la base. PR : https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62041 &#8211; et contexte : https:\/\/developer.woocommerce.com\/2026\/01\/19\/experimental-product-object-caching-in-woocommerce-10-5\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Correctif sur le cache des Product Filters (catalogues volumineux)<\/h3>\n\n\n\n<p>Une am\u00e9lioration cible les soucis de performance li\u00e9s au cache des <strong>Product Filters<\/strong> : certaines donn\u00e9es de cache n\u2019\u00e9taient pas correctement d\u00e9finies\/charg\u00e9es, ce qui pouvait \u201cinonder\u201d la base avec des donn\u00e9es de cache de filtres et impacter les boutiques \u00e0 gros catalogue.<\/p>\n\n\n\n<p>Deux points op\u00e9rationnels sont \u00e0 noter :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Le tool de nettoyage des transients WooCommerce a \u00e9t\u00e9 mis \u00e0 jour pour aussi purger le cache de donn\u00e9es des filtres lors de son ex\u00e9cution.<\/li>\n\n\n<li>Si un site utilise le bloc Product Filters et continue \u00e0 souffrir de probl\u00e8mes de performance, la cause peut venir de l\u00e0 &#8211; et la solution indiqu\u00e9e est de nettoyer les transients WooCommerce.<\/li>\n\n<\/ul>\n\n\n\n<p>R\u00e9f\u00e9rence : <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62575\">#62575<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog complet<\/h2>\n\n\n\n<p>Le changelog complet de la version beta est disponible ici : https:\/\/github.com\/woocommerce\/woocommerce\/blob\/10.5.0-beta.1\/plugins\/woocommerce\/readme.txt<\/p>\n\n\n<div class=\"references-section\">\n                <h2>R\u00e9f\u00e9rences \/ Sources<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/developer.woocommerce.com\/2026\/01\/20\/woocommerce-10-5-whats-coming-for-developers\/\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce 10.5: What\u2019s coming for developers Release Posts<\/a><\/li><li><a href=\"https:\/\/developer.woocommerce.com\/2026\/01\/14\/wc-rest-api-fixes-for-product-variation-attributes-with-special-characters-in-woocommerce-10-5\/\" target=\"_blank\" rel=\"noopener noreferrer\">WC REST API fixes for product variation attributes with special characters in WooCommerce 10.5<\/a><\/li><li><a href=\"https:\/\/developer.woocommerce.com\/2026\/01\/15\/removal-of-the-accessibleprivatemethods-trait-in-woocommerce-10-5\/\" target=\"_blank\" rel=\"noopener noreferrer\">Removal of the AccessiblePrivateMethods trait in WooCommerce 10.5<\/a><\/li><li><a href=\"https:\/\/developer.woocommerce.com\/2026\/01\/13\/product-permalink-changes-coming-in-woocommerce-10-5\/\" target=\"_blank\" rel=\"noopener noreferrer\">Product permalink changes coming in WooCommerce 10.5<\/a><\/li><li><a href=\"https:\/\/developer.woocommerce.com\/2026\/01\/16\/add-to-cart-button-disabled-by-default-in-variable-products-in-woocommerce-10-5\/\" target=\"_blank\" rel=\"noopener noreferrer\">Add to cart button disabled by default in variable products in WooCommerce 10.5<\/a><\/li><li><a href=\"https:\/\/developer.woocommerce.com\/2026\/01\/08\/variation-prices-caching-improvements-in-woocommerce-10-5\/\" target=\"_blank\" rel=\"noopener noreferrer\">Variation prices caching improvements in WooCommerce 10.5<\/a><\/li><li><a href=\"https:\/\/developer.woocommerce.com\/2026\/01\/19\/experimental-product-object-caching-in-woocommerce-10-5\/\" target=\"_blank\" rel=\"noopener noreferrer\">Experimental product object caching in WooCommerce 10.5<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61603\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce\/woocommerce\/pull\/61603<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61625\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce\/woocommerce\/pull\/61625<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62271\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce\/woocommerce\/pull\/62271<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61956\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce\/woocommerce\/pull\/61956<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62040\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce\/woocommerce\/pull\/62040<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62041\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce\/woocommerce\/pull\/62041<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62575\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce\/woocommerce\/pull\/62575<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/blob\/10.5.0-beta.1\/plugins\/woocommerce\/readme.txt\" target=\"_blank\" rel=\"noopener noreferrer\">plugins\/woocommerce\/readme.txt (10.5.0-beta.1 changelog)<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WooCommerce 10.5 arrive avec un changement structurel sur l\u2019import des donn\u00e9es de commandes vers Analytics, plusieurs correctifs UI\/fiabilit\u00e9, et une grosse dose d\u2019optimisations perf (dont du cache exp\u00e9rimental).<\/p>\n","protected":false},"author":14,"featured_media":231,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[106,27,105,40,10],"class_list":["post-232","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecosysteme-wordpress","tag-checkout-block","tag-performance","tag-rest-api","tag-woocommerce","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts\/232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/comments?post=232"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts\/232\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/media\/231"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/media?parent=232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/categories?post=232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/tags?post=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}