{"id":214,"date":"2026-01-20T00:00:00","date_gmt":"2026-01-19T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/it\/woocommerce-10-5-anteprima-sviluppatori\/"},"modified":"2026-01-20T00:00:00","modified_gmt":"2026-01-19T23:00:00","slug":"woocommerce-10-5-anteprima-sviluppatori","status":"publish","type":"post","link":"https:\/\/helloblog.io\/it\/woocommerce-10-5-anteprima-sviluppatori\/","title":{"rendered":"WooCommerce 10.5: anteprima per sviluppatori (Analytics import, Checkout block, API e performance)"},"content":{"rendered":"\n<p>WooCommerce 10.5 \u00e8 ormai in dirittura d\u2019arrivo e, per chi sviluppa temi o estensioni, questa release ha diversi punti che vale la pena conoscere in anticipo: cambia in modo sostanziale la strategia di import dei dati ordini verso le tabelle di Analytics, arrivano fix e miglioramenti su Checkout block, gestione tasse legacy, CSS di Select2, pi\u00f9 una manciata di avvisi API e ottimizzazioni prestazionali (incluse feature sperimentali di caching).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Timeline di rilascio (feature freeze, beta e release)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Feature Freeze avviato: 12 gennaio 2026<\/li>\n\n\n<li>WooCommerce 10.5 Beta 1 rilasciata: 19 gennaio 2026<\/li>\n\n\n<li>WooCommerce 10.5 Beta 2 rilasciata: 26 gennaio 2026<\/li>\n\n\n<li>Release finale di WooCommerce 10.5 pianificata: 4 febbraio 2026<\/li>\n\n<\/ul>\n\n\n\n<p>Per provare le beta, il canale consigliato \u00e8 il plugin ufficiale <a href=\"https:\/\/woocommerce.com\/products\/woocommerce-beta-tester\/\">WooCommerce Beta Tester<\/a>, che permette di installare e aggiornare facilmente le versioni di test.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa arriva in WooCommerce 10.5 (cambiamenti principali)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Import Analytics ordini: da job per evento a import pianificati a batch<\/h3>\n\n\n\n<p>Il cambiamento pi\u00f9 impattante di 10.5 riguarda il modo in cui WooCommerce importa i dati ordini nelle tabelle di Analytics. Finora, per ogni evento legato a un ordine, WooCommerce avviava un job di import tramite ActionScheduler. Anche se asincrono, su store con traffico elevato questa strategia poteva creare backlog enormi (anche oltre 10.000 azioni), con degrado prestazionale marcato: rallentamenti del sito, contesa sul database e carico inutile dovuto all\u2019enorme quantit\u00e0 di azioni pianificate.<\/p>\n\n\n\n<p>Con WooCommerce 10.5 il comportamento di default passa a <strong>Scheduled Imports<\/strong>: invece di far partire un job per ogni evento, l\u2019import viene aggiornato con elaborazione a batch <strong>ogni 12 ore<\/strong>, processando <strong>100 ordini per batch<\/strong>. Entrambi i parametri sono personalizzabili tramite due nuovi filter hook:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>woocommerce_analytics_import_interval<\/code> (per modificare l\u2019intervallo)<\/li>\n\n\n<li><code>woocommerce_analytics_regenerate_batch_size<\/code> (per modificare la dimensione del batch)<\/li>\n\n<\/ul>\n\n\n\n<p>Il risultato atteso \u00e8 una riduzione drastica del numero di azioni programmate e del carico sul database, con un beneficio diretto sulle performance degli store pi\u00f9 attivi. In pi\u00f9, viene migliorata la visibilit\u00e0 sullo stato dell\u2019import e rimane la possibilit\u00e0 di forzare l\u2019import manualmente quando serve. Riferimento: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61603\">#61603<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Checkout block: UI opzioni di spedizione pi\u00f9 chiara (thumb e contenitori) + fix sync metodi<\/h3>\n\n\n\n<p>Nel Checkout block (il checkout basato su blocchi), le opzioni di spedizione vengono migliorate dal punto di vista UI: quando sono presenti pi\u00f9 pacchi (scenario frequente con prodotti in abbonamento), l\u2019interfaccia mostra <strong>le miniature dei prodotti<\/strong> e utilizza <strong>contenitori con bordo<\/strong> per rendere pi\u00f9 leggibile la scelta.<\/p>\n\n\n\n<p>Oltre al miglioramento visuale, viene corretto un bug per cui i metodi di spedizione non si sincronizzavano correttamente quando l\u2019utente alternava tra le opzioni di consegna <strong>Ship<\/strong> e <strong>Pickup<\/strong>. Riferimento: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61625\">#61625<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ordini con dati tasse legacy o corrotti: handling retrocompatibile + filter per conversione<\/h3>\n\n\n\n<p>WooCommerce 10.5 aumenta l\u2019affidabilit\u00e0 nella visualizzazione degli ordini che contengono dati tasse legacy o corrotti, in particolare quando i valori delle tasse sono stati salvati come float\/stringhe invece che come array.<\/p>\n\n\n\n<p>Il fix introduce una gestione retrocompatibile su tutti i tipi di order item (prodotti, spedizione, fee), prova a inferire in modo \u201cintelligente\u201d gli ID delle aliquote (tax rate IDs) dal contesto dell\u2019ordine e mette a disposizione un filter hook per chi deve applicare una logica di conversione personalizzata:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>woocommerce_order_item_legacy_tax_conversion<\/code><\/li>\n\n<\/ul>\n\n\n\n<p>Riferimento: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62271\">#62271<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Select2: CSS di WooCommerce ora \u201cscopato\u201d per non contaminare altri plugin<\/h3>\n\n\n\n<p>Un problema pratico che molti di noi hanno visto almeno una volta: WooCommerce carica stili per Select2 che possono \u201ccolare\u201d anche in altre interfacce (ad esempio schermate admin di altri plugin), alterandone l\u2019aspetto.<\/p>\n\n\n\n<p>In 10.5 gli stili Select2 caricati da WooCommerce vengono ora limitati tramite <code>:where(.woocommerce)<\/code>. La pseudo-class <code>:where()<\/code> ha specificit\u00e0 pari a zero, quindi l\u2019intento \u00e8 duplice: evitare che gli stili di WooCommerce influenzino UI esterne e, allo stesso tempo, non rompere gli override custom esistenti che si basavano sulla specificit\u00e0. Riferimento: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61956\">#61956<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nuovo filter <code>woocommerce_shipping_tax_class<\/code>: calcolo dinamico delle tasse sulla spedizione<\/h3>\n\n\n\n<p>Arriva un nuovo filter hook, <code>woocommerce_shipping_tax_class<\/code>, pensato per abilitare un calcolo pi\u00f9 dinamico della tassazione della spedizione in base a contenuto del carrello, dati cliente e localizzazione.<\/p>\n\n\n\n<p>Questo punto \u00e8 particolarmente utile quando servono regole fiscali complesse. Un esempio citato \u00e8 la possibilit\u00e0 di calcolare l\u2019imposta della spedizione usando l\u2019aliquota predominante nel carrello, un\u2019esigenza tipica di scenari come quelli dei Paesi Bassi. Riferimento: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62040\">#59512<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cambiamenti API e avvisi per sviluppatori (developer advisories)<\/h2>\n\n\n\n<p>Oltre alle modifiche \u201ccore\u201d, WooCommerce 10.5 include diversi interventi gi\u00e0 descritti in dettaglio nei post di advisory per sviluppatori. Qui sotto trovi il riassunto dei punti principali con i link ai dettagli.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">WC REST API: decoding corretto dei caratteri speciali negli attributi delle variazioni<\/h3>\n\n\n\n<p>La WC REST API (l\u2019API HTTP di WooCommerce) gestir\u00e0 correttamente la decodifica dei <strong>caratteri speciali<\/strong> negli attributi delle variazioni prodotto. Dettagli: 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\">Rimozione del trait <code>AccessiblePrivateMethods<\/code><\/h3>\n\n\n\n<p>Il trait <code>AccessiblePrivateMethods<\/code> verr\u00e0 rimosso. Era nel namespace <code>Internal<\/code>, proprio come segnale che non dovesse essere consumato pubblicamente. La rimozione pu\u00f2 impattare estensioni che lo stavano usando in modo improprio. Dettagli: 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\">Permalink prodotto basati su categorie: cambia la priorit\u00e0 (categoria pi\u00f9 \u201cprofonda\u201d)<\/h3>\n\n\n\n<p>I permalink dei prodotti basati su categorie verranno aggiornati dando priorit\u00e0 alla categoria pi\u00f9 \u201cprofonda\u201d (deepest category), con l\u2019obiettivo di migliorare SEO e consistenza degli URL. L\u2019impatto riguarda solo specifiche strutture di permalink. Dettagli: 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\">Prodotti variabili: pulsante Add to Cart disabilitato finch\u00e9 lo script variazioni non \u00e8 caricato<\/h3>\n\n\n\n<p>Sulle pagine di prodotto variabile, WooCommerce far\u00e0 in modo che il pulsante <strong>Add to Cart<\/strong> resti disabilitato fino a quando lo script delle variazioni non \u00e8 completamente caricato. In precedenza, su connessioni lente, un utente poteva cliccare \u201cAdd to Cart\u201d prima che la logica di selezione variazioni fosse inizializzata, causando invii falliti. Dettagli: 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: caching REST sperimentale e ottimizzazioni su prezzi variazioni, oggetti prodotto e filtri<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Nuova cache sperimentale per WC REST API (applicabile a qualsiasi endpoint)<\/h3>\n\n\n\n<p>WooCommerce 10.5 introdurr\u00e0 una nuova <strong>cache REST API sperimentale<\/strong>, applicabile a qualunque endpoint della WC REST API. Al momento dell\u2019annuncio non sono stati condivisi tutti i dettagli operativi: sono attese ulteriori indicazioni su come testarla in prossimit\u00e0 della release 10.5.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cached variation prices: miglioramenti + utility class per gestire callback<\/h3>\n\n\n\n<p>Il caching dei prezzi delle variazioni riceve ulteriori miglioramenti e arriva anche una nuova utility class pensata per lavorare meglio con le callback. Approfondimento: 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 (sperimentale): cache delle istanze prodotto per request<\/h3>\n\n\n\n<p>Debutta una feature sperimentale chiamata <strong>Product Object Caching<\/strong>: l\u2019idea \u00e8 mettere in cache le istanze dei prodotti durante la singola request, cos\u00ec da evitare caricamenti duplicati dal database. Questo pu\u00f2 migliorare sensibilmente le performance in pagine dove lo stesso prodotto viene richiesto pi\u00f9 volte nel ciclo di esecuzione.<\/p>\n\n\n\n<p>Riferimento PR: https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62041 &#8211; Approfondimento: 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\">Product Filters: fix su cache data per evitare \u201cinondazioni\u201d di dati nel DB + cleanup transients aggiornato<\/h3>\n\n\n\n<p>Viene risolto un problema prestazionale legato ai <strong>Product Filters<\/strong>: i dati di cache non venivano impostati e caricati correttamente, col rischio di riempire il database con cache non gestite e di impattare le performance degli store con cataloghi grandi.<\/p>\n\n\n\n<p>In 10.5 la cache dei filtri viene gestita in modo pi\u00f9 corretto e viene anche aggiornato lo strumento di pulizia dei transients di WooCommerce per cancellare la filter data cache quando esegue il cleanup. Se un negozio usa il blocco Product Filters e continua a vedere rallentamenti, una possibile causa \u00e8 proprio questa: la soluzione indicata \u00e8 ripulire i transients di WooCommerce. Riferimento: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62575\">#62575<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog completo<\/h2>\n\n\n\n<p>Per l\u2019elenco completo delle modifiche, il riferimento \u00e8 il changelog nel branch della beta: https:\/\/github.com\/woocommerce\/woocommerce\/blob\/10.5.0-beta.1\/plugins\/woocommerce\/readme.txt<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa testare subito (checklist pratica per chi sviluppa estensioni)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Store con volumi elevati: verifica l\u2019impatto dei nuovi Scheduled Imports su Analytics (tempi di aggiornamento, carico ActionScheduler, eventuali import manuali).<\/li>\n\n\n<li>Se hai logica custom su import\/rigenerazione Analytics: controlla i nuovi filter <code>woocommerce_analytics_import_interval<\/code> e <code>woocommerce_analytics_regenerate_batch_size<\/code>.<\/li>\n\n\n<li>Checkout block: prova scenari multi-package (soprattutto abbonamenti) e controlla il passaggio Ship\/Pickup per assicurarti che la scelta del metodo di spedizione resti coerente.<\/li>\n\n\n<li>Compatibilit\u00e0 con ordini storici: apri ordini \u201cvecchi\u201d o con dati tasse anomali e, se fai manipolazioni custom, valuta l\u2019uso del filter <code>woocommerce_order_item_legacy_tax_conversion<\/code>.<\/li>\n\n\n<li>Admin UI e Select2: se il tuo plugin usa Select2, verifica che gli stili non vengano pi\u00f9 alterati da WooCommerce e che i tuoi override CSS continuino a funzionare.<\/li>\n\n\n<li>Tasse spedizione: se implementi regole fiscali complesse, esplora il nuovo <code>woocommerce_shipping_tax_class<\/code> per calcoli dinamici.<\/li>\n\n\n<li>Integrazioni REST: controlla endpoint che leggono\/scrivono variazioni con attributi contenenti caratteri speciali.<\/li>\n\n\n<li>Frontend prodotto variabile: verifica eventuali personalizzazioni del pulsante Add to Cart (JS\/CSS) considerando che ora \u00e8 disabilitato fino al completo load dello script variazioni.<\/li>\n\n\n<li>Performance: se sperimenti feature di caching, tieni d\u2019occhio la nuova REST API cache sperimentale e il Product Object Caching; se usi Product Filters block su cataloghi grandi, verifica i miglioramenti e considera un cleanup transients se noti rallentamenti.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>Riferimenti \/ Fonti<\/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 PR #61603<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61625\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce PR #61625<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62271\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce PR #62271<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61956\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce PR #61956<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62040\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce PR #62040<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62041\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce PR #62041<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62575\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce PR #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\">WooCommerce 10.5.0-beta.1 readme.txt changelog<\/a><\/li><li><a href=\"https:\/\/woocommerce.com\/products\/woocommerce-beta-tester\/\" target=\"_blank\" rel=\"noopener noreferrer\">WooCommerce Beta Tester<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WooCommerce 10.5 porta un cambio importante nell\u2019import dei dati ordini per Analytics e una serie di ritocchi mirati a API, Checkout block e performance. Ecco cosa aspettarsi e cosa testare prima della release finale.<\/p>\n","protected":false},"author":19,"featured_media":213,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[108,28,107,39,10],"class_list":["post-214","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecosistema-wordpress","tag-checkout-block","tag-performance","tag-rest-api","tag-woocommerce","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/posts\/214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/comments?post=214"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/posts\/214\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/media\/213"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/media?parent=214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/categories?post=214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/it\/wp-json\/wp\/v2\/tags?post=214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}