{"id":217,"date":"2026-01-20T00:00:00","date_gmt":"2026-01-19T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/de\/woocommerce-10-5-was-sich-fuer-entwickler-aendert\/"},"modified":"2026-01-20T00:00:00","modified_gmt":"2026-01-19T23:00:00","slug":"woocommerce-10-5-was-sich-fuer-entwickler-aendert","status":"publish","type":"post","link":"https:\/\/helloblog.io\/de\/woocommerce-10-5-was-sich-fuer-entwickler-aendert\/","title":{"rendered":"WooCommerce 10.5: Was sich f\u00fcr Entwickler \u00e4ndert (Analytics-Import, Checkout, API, Performance)"},"content":{"rendered":"\n<p>WooCommerce 10.5 steht kurz vor dem Release und ist klar eine Version, die man als Entwickler nicht nur \u201emitnimmt\u201c, sondern aktiv testet. Der Schwerpunkt liegt auf einem grundlegenden Umbau beim Import von Bestelldaten in die Analytics-Tabellen, dazu kommen Verbesserungen im Checkout-Block, robustere Behandlung von Legacy-Steuerdaten, ein CSS-Scoping-Fix f\u00fcr Select2 sowie neue Filter f\u00fcr komplexe Steuerlogik beim Versand.<\/p>\n\n\n\n<p>Dazu gibt es mehrere Hinweise (Advisories) zu API- und Verhaltens\u00e4nderungen sowie neue Performance-Ans\u00e4tze, darunter experimentelles Caching im REST-API-Umfeld und ein experimentelles Product Object Caching.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Release-Zeitplan (Stand der Ank\u00fcndigung)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Feature Freeze gestartet: 12. Januar 2026<\/li>\n\n\n<li>WooCommerce 10.5 Beta 1 ver\u00f6ffentlicht: 19. Januar 2026<\/li>\n\n\n<li>WooCommerce 10.5 Beta 2 ver\u00f6ffentlicht: 26. Januar 2026<\/li>\n\n\n<li>Final Release geplant: 4. Februar 2026<\/li>\n\n<\/ul>\n\n\n\n<p>Zum Testen der Betas ist explizit das Plugin <a href=\"https:\/\/woocommerce.com\/products\/woocommerce-beta-tester\/\">WooCommerce Beta Tester<\/a> vorgesehen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was kommt in WooCommerce 10.5 (relevante \u00c4nderungen f\u00fcr Developer)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) Analytics: Neuer Standard f\u00fcr Order-Importe \u2013 weg von \u201epro Event\u201c, hin zu Scheduled Imports<\/h3>\n\n\n\n<p>Die wichtigste \u00c4nderung in 10.5 betrifft den Import von Bestelldaten in die WooCommerce-Analytics-Tabellen. Bisher wurde f\u00fcr jedes Order-Event ein Import-Job \u00fcber ActionScheduler angesto\u00dfen. Zwar asynchron, aber in der Praxis hat das auf stark frequentierten Shops regelm\u00e4\u00dfig zu massiven ActionScheduler-Backlogs (10.000+ Actions) gef\u00fchrt \u2013 inklusive Performance-Einbr\u00fcchen, hoher Datenbank-Contention und sp\u00fcrbaren Site-Slowdowns.<\/p>\n\n\n\n<p>Mit 10.5 ist der neue Default <strong>Scheduled Imports<\/strong>: Statt pro Event zu importieren, wird die Analytics-Aktualisierung in Batches erledigt \u2013 <strong>alle 12 Stunden<\/strong> und <strong>100 Orders pro Batch<\/strong>. Beides ist anpassbar, und zwar \u00fcber zwei neue Filter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>woocommerce_analytics_import_interval<\/code> (Intervall f\u00fcr die geplanten Importe)<\/li>\n\n\n<li><code>woocommerce_analytics_regenerate_batch_size<\/code> (Batch-Gr\u00f6\u00dfe, standardm\u00e4\u00dfig 100 Orders)<\/li>\n\n<\/ul>\n\n\n\n<p>Der Effekt: deutlich weniger geplante Actions und weniger Datenbanklast \u2013 bei gleichzeitig besserer Transparenz f\u00fcr Store Owner (klarer Status) und der M\u00f6glichkeit, Importe jederzeit manuell zu triggern. Technischer Kontext\/PR: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61603\">#61603<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2) Checkout Block: Versandoptionen-UI mit Thumbnails und bessere Multi-Package-Darstellung<\/h3>\n\n\n\n<p>Im Checkout-Block wurde die UI der Versandoptionen verbessert: Wenn mehrere Packages vorhanden sind (u. a. relevant bei Subscription-Produkten), zeigt WooCommerce jetzt Produkt-Thumbnails und arbeitet mit umrahmten Containern, um die Pakete visuell klarer zu trennen.<\/p>\n\n\n\n<p>Au\u00dferdem wurde ein Bug behoben, bei dem Shipping-Methods nicht sauber synchronisiert wurden, wenn Nutzer zwischen \u201eShip\u201c und \u201ePickup\u201c umgeschaltet haben. PR: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61625\">#61625<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3) Orders mit Legacy-\/korrupten Steuerdaten: robustere Anzeige und Backwards Compatibility<\/h3>\n\n\n\n<p>Ein typischer \u201eAltlast\u201c-Fehlerfall: In manchen Bestellungen liegen Steuerwerte nicht als Arrays vor, sondern als Floats oder Strings (legacy oder durch fehlerhafte Erweiterungen\/Imports). 10.5 macht das Anzeigen solcher Orders zuverl\u00e4ssiger, und zwar <strong>f\u00fcr alle Order-Item-Typen<\/strong> (Products, Shipping, Fees).<\/p>\n\n\n\n<p>Die Logik ist dabei bewusst r\u00fcckw\u00e4rtskompatibel und versucht au\u00dferdem, Tax-Rate-IDs aus dem Order-Kontext sinnvoll herzuleiten (Inference). F\u00fcr Custom-Implementierungen gibt es zus\u00e4tzlich einen Filter, um eigene Konvertierungslogik einzuh\u00e4ngen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>woocommerce_order_item_legacy_tax_conversion<\/code> (Custom conversion logic f\u00fcr Legacy-Steuerwerte)<\/li>\n\n<\/ul>\n\n\n\n<p>PR: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62271\">#62271<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4) Select2-CSS: Styles werden jetzt sauber auf WooCommerce begrenzt<\/h3>\n\n\n\n<p>WooCommerce l\u00e4dt Select2-Styles (Select2 ist eine verbreitete JavaScript-UI-Komponente f\u00fcr erweiterte Select-Felder). Bisher konnten diese Styles in andere Plugin-Oberfl\u00e4chen \u201eauslaufen\u201c und dort unerw\u00fcnschte Nebeneffekte verursachen.<\/p>\n\n\n\n<p>In 10.5 werden die Select2-Styles, die WooCommerce l\u00e4dt, \u00fcber <code>:where(.woocommerce)<\/code> gescoped. Wichtiges Detail: Die <code>:where()<\/code> Pseudo-Class hat <strong>null Specificity<\/strong>, wodurch bestehende Custom Overrides weiterhin funktionieren sollen \u2013 aber eben ohne dass WooCommerce UI anderer Plugins beeinflusst. PR: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61956\">#61956<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5) Neue Steuer-Extension-Option: <code>woocommerce_shipping_tax_class<\/code> f\u00fcr dynamische Versandsteuer<\/h3>\n\n\n\n<p>Mit 10.5 kommt ein neuer Filter, der komplexere Steueranforderungen im Versand adressiert: <code>woocommerce_shipping_tax_class<\/code>. Damit kannst du Versandsteuers\u00e4tze dynamisch berechnen \u2013 basierend auf Warenkorb-Inhalten, Kundendaten und Standort.<\/p>\n\n\n\n<p>Ein explizit genanntes Beispiel ist die Berechnung anhand des \u201epredominant tax rate\u201c (dominanter Steuersatz im Warenkorb). Das soll u. a. Szenarien abdecken, wie sie in den Niederlanden vorkommen k\u00f6nnen. PR-Link laut Ank\u00fcndigung: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62040\">#59512<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">API Changes &#038; Developer Advisories (kurzer \u00dcberblick)<\/h2>\n\n\n\n<p>Zus\u00e4tzlich zu den Core-\u00c4nderungen gibt es in 10.5 mehrere API- und Verhaltens\u00e4nderungen, die WooCommerce im Developer Blog ausf\u00fchrlicher dokumentiert. F\u00fcr die praktische Arbeit sind vor allem diese Punkte relevant:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>WC REST API: Special-Character-Decoding f\u00fcr Produktvariations-Attribute wird korrekt gehandhabt. Details: https:\/\/developer.woocommerce.com\/2026\/01\/14\/wc-rest-api-fixes-for-product-variation-attributes-with-special-characters-in-woocommerce-10-5\/<\/li>\n\n\n<li>Das <code>AccessiblePrivateMethods<\/code>-Trait wird entfernt. Es war Teil des <code>Internal<\/code>-Namespace (Signal: nicht f\u00fcr \u00f6ffentlichen Konsum gedacht). Erweiterungen, die es trotzdem genutzt haben, k\u00f6nnen betroffen sein. Details: https:\/\/developer.woocommerce.com\/2026\/01\/15\/removal-of-the-accessibleprivatemethods-trait-in-woocommerce-10-5\/<\/li>\n\n\n<li>Produkt-Permalinks auf Kategorie-Basis werden angepasst: Priorisiert wird k\u00fcnftig die tiefste Kategorie (mehr Konsistenz\/SEO), betrifft nur bestimmte Permalink-Strukturen. Details: https:\/\/developer.woocommerce.com\/2026\/01\/13\/product-permalink-changes-coming-in-woocommerce-10-5\/<\/li>\n\n\n<li>Variable Products: Auf Produktseiten mit Varianten ist der \u201eAdd to Cart\u201c-Button standardm\u00e4\u00dfig deaktiviert, bis das Variation-Script vollst\u00e4ndig geladen ist. Hintergrund: Auf langsamen Verbindungen konnte man bisher klicken, bevor die Auswahl-\/Validierungslogik bereit war, was zu fehlgeschlagenen Submissions f\u00fchrte. Details: https:\/\/developer.woocommerce.com\/2026\/01\/16\/add-to-cart-button-disabled-by-default-in-variable-products-in-woocommerce-10-5\/<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Performance: Was 10.5 zus\u00e4tzlich schneller machen soll<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Experimenteller REST-API-Cache (neu)<\/h3>\n\n\n\n<p>WooCommerce 10.5 f\u00fchrt einen <strong>neuen experimentellen REST-API-Cache<\/strong> ein, der grunds\u00e4tzlich auf jeden Endpoint der WC REST API anwendbar sein soll. Laut Ank\u00fcndigung folgen Details zum Testen und zur Nutzung noch vor dem 10.5-Release; im Release-Post wird das Feature selbst aber bereits als zentrale Performance-Verbesserung genannt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Variation Prices: Caching-Verbesserungen + Utility-Klasse f\u00fcr Callbacks<\/h3>\n\n\n\n<p>Beim Caching von Variantenpreisen gibt es weitere Optimierungen. Zus\u00e4tzlich wird eine neue Utility-Klasse eingef\u00fchrt, die beim Arbeiten mit Callbacks helfen soll. Die ausf\u00fchrlichen Details sind im separaten Beitrag beschrieben: 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\">Experimentelles Product Object Caching<\/h3>\n\n\n\n<p>Ein weiteres experimentelles Feature ist <strong>Product Object Caching<\/strong>. Idee: W\u00e4hrend eines Requests werden Produktinstanzen gecached, um doppelte Produkt-Ladevorg\u00e4nge aus der Datenbank zu verhindern. Das soll insbesondere dort helfen, wo Produkte innerhalb eines Requests wiederholt referenziert werden.<\/p>\n\n\n\n<p>PR: https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62041 \u2013 zus\u00e4tzliche Einordnung\/Details im Beitrag: 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: Cache-Daten korrekt setzen\/laden + Transients-Cleanup erweitert<\/h3>\n\n\n\n<p>WooCommerce 10.5 adressiert au\u00dferdem Performance-Probleme rund um Product Filters: Cache-Daten wurden zuvor nicht sauber gesetzt und geladen. Das kann dazu f\u00fchren, dass die Datenbank mit Filter-Cache geflutet wird \u2013 und gro\u00dfe Kataloge dadurch sp\u00fcrbar langsamer werden.<\/p>\n\n\n\n<p>In 10.5 wird das behoben, und zus\u00e4tzlich wird das WooCommerce-Tool zum Aufr\u00e4umen von Transients so erweitert, dass es beim Lauf auch den Filter-Data-Cache entfernt. Praktischer Hinweis aus der Ank\u00fcndigung: Wenn ein Shop den Product Filters-Block nutzt und weiterhin Performance-Probleme hat, kann genau dieser Cache die Ursache sein \u2013 und dann ist das Bereinigen der WooCommerce-Transients die naheliegende Ma\u00dfnahme. PR: <a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62575\">#62575<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog<\/h2>\n\n\n\n<p>Das vollst\u00e4ndige Changelog ist im WooCommerce-Repository einsehbar: 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\">Kurzfazit f\u00fcr die Praxis<\/h2>\n\n\n\n<p>Wenn du Erweiterungen betreibst, die stark auf Analytics\/Reports, Steuern, den Checkout-Block oder REST API setzen, lohnt sich ein gezielter Beta-Test von 10.5. Der Wechsel auf Scheduled Imports reduziert zwar typischerweise Systemdruck (weniger ActionScheduler-Backlog), ist aber gleichzeitig ein behavior change, den man in Monitoring\/Operations im Blick behalten sollte \u2013 genauso wie die Advisory-Themen (Trait-Removal, Permalink-Logik, Add-to-Cart-Verhalten bei Variations) und die experimentellen Caching-Features.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Referenzen \/ Quellen<\/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&#039;s 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\">Pull Request #61603<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61625\" target=\"_blank\" rel=\"noopener noreferrer\">Pull Request #61625<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62271\" target=\"_blank\" rel=\"noopener noreferrer\">Pull Request #62271<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/61956\" target=\"_blank\" rel=\"noopener noreferrer\">Pull Request #61956<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62040\" target=\"_blank\" rel=\"noopener noreferrer\">Pull Request #62040<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62041\" target=\"_blank\" rel=\"noopener noreferrer\">Pull Request #62041<\/a><\/li><li><a href=\"https:\/\/github.com\/woocommerce\/woocommerce\/pull\/62575\" target=\"_blank\" rel=\"noopener noreferrer\">Pull Request #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\">readme.txt changelog (10.5.0-beta.1)<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WooCommerce 10.5 bringt vor allem unter der Haube sp\u00fcrbare \u00c4nderungen: weniger ActionScheduler-Last durch neue Analytics-Import-Logik, gezielte API- und UI-Fixes und mehrere Performance-Features (teils experimentell).<\/p>\n","protected":false},"author":9,"featured_media":216,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45],"tags":[108,30,107,42,10],"class_list":["post-217","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-okosystem","tag-checkout","tag-performance","tag-rest-api","tag-woocommerce","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/posts\/217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/comments?post=217"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/posts\/217\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/media\/216"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/media?parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/categories?post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/de\/wp-json\/wp\/v2\/tags?post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}