Een fundamentele verbetering in de manier waarop WooCommerce ordergegevens importeert in de Analytics-tabellen.
Voorheen activeerde WooCommerce een Analytics-importtaak voor elke order via ActionScheduler. Hoewel asynchroon, zorgde deze aanpak voor enorme achterstanden in ActionScheduler (meer dan 10.000 acties) op drukke websites, wat leidde tot ernstige prestatievermindering, databasecongestie en vertragingen van de website.
Met deze release gebruikt WooCommerce nu standaard geplande importen. Deze maken gebruik van batchverwerking om de Analytics-gegevens elke 12 uur te vernieuwen en verwerken 100 orders per batch (aanpasbaar via nieuwe filters: woocommerce_analytics_import_interval en woocommerce_analytics_regenerate_batch_size). Dit vermindert het aantal geplande acties en de databasebelasting aanzienlijk, terwijl winkeleigenaren een duidelijk inzicht in de status behouden en importen op elk gewenst moment handmatig kunnen starten. #61603
De gebruikersinterface van de verzendopties in het afrekenblok is verbeterd om productminiaturen en kaders weer te geven wanneer er meerdere pakketten aanwezig zijn, met name voor abonnementsproducten.
Deze update verhelpt ook een bug waarbij verzendmethoden niet correct werden gesynchroniseerd bij het schakelen tussen verzend- en afhaalopties. #61625
Verbeterde betrouwbaarheid bij het bekijken van bestellingen met verouderde of beschadigde belastinggegevens, waarbij belastingwaarden werden opgeslagen als floats/strings in plaats van arrays.
De oplossing voegt achterwaarts compatibele verwerking toe voor alle orderitemtypen (producten, verzending, kosten), leidt op intelligente wijze belastingtarief-ID’s af uit de ordercontext en bevat een woocommerce_order_item_legacy_tax_conversion-filter voor aangepaste conversielogica. #62271
Select2-stijlen die door WooCommerce worden geladen, zijn nu beperkt om te voorkomen dat ze via :where(.woocommerce) in de interfaces van andere plugins terechtkomen.
De pseudo-klasse :where() behoudt nul specificiteit, waardoor bestaande aangepaste overrides blijven werken en wordt voorkomen dat de Select2-stijlen van WooCommerce andere plugins beïnvloeden. #61956
Er is een nieuw woocommerce_shipping_tax_class-filter geïntroduceerd waarmee verzendbelastingtarieven dynamisch kunnen worden berekend op basis van de inhoud van het winkelmandje, klantgegevens en locatie.
Met dit filter kunnen ontwikkelaars aangepaste logica implementeren, zoals het berekenen van de verzendbelasting met behulp van het meest voorkomende belastingtarief in het winkelmandje. Dit biedt een flexibele oplossing voor complexe belastingscenario’s, zoals die in Nederland vereist zijn. #59512
API-wijzigingen en -adviezen
Deze release bevat ook een aantal wijzigingen die uitgebreider zijn beschreven op de ontwikkelaarsblog. Hier volgt een korte samenvatting van enkele wijzigingen, maar we raden aan om door te klikken naar de volledige ontwikkelaarsadviezen voor meer informatie:
De WC REST API kan nu correct omgaan met de decodering van speciale tekens voor productvariatiekenmerken. Lees het volledige bericht voor meer informatie.
De trait AccessiblePrivateMethods wordt verwijderd. Deze maakte deel uit van de interne namespace als een belangrijk signaal dat deze niet openbaar gebruikt mocht worden. Deze wijziging kan gevolgen hebben voor extensies die deze trait onjuist gebruikten. Lees het volledige bericht voor meer informatie.
Productpermalinks op basis van categorieën worden bijgewerkt, waarbij de diepste categorie prioriteit krijgt voor betere SEO en consistentie in URL’s. Dit heeft alleen invloed op specifieke permalinkstructuren. Lees het volledige bericht voor meer informatie.
WooCommerce zorgt er nu voor dat op productpagina’s met variabele producten de knop ‘Toevoegen aan winkelwagen’ is uitgeschakeld totdat het script voor de variaties volledig is geladen. Voorheen konden gebruikers bij tragere verbindingen op ‘Toevoegen aan winkelwagen’ klikken voordat de logica voor variatieselectie was geïnitialiseerd, wat leidde tot mislukte inzendingen. Lees het volledige bericht voor meer informatie.
Prestatieverbeteringen
WooCommerce 10.5 introduceert een nieuwe experimentele REST API-cache die kan worden toegepast op elk eindpunt in de WC REST API. We zullen meer informatie over deze functie, inclusief hoe u deze kunt testen, publiceren vóór de release van 10.5. In de tussentijd is hier een klein voorbeeld van enkele andere prestatieverbeteringen:
Ook de gecachede variatieprijzen zijn verbeterd, samen met een nieuwe hulpprogrammaklasse voor het werken met callbacks. Lees het volledige bericht voor meer informatie.
Deze release introduceert ook een experimentele functie voor het cachen van productobjecten. Deze functie verbetert de prestaties door productinstanties tijdens elke aanvraag in de cache op te slaan, waardoor dubbele productladingen uit de database worden voorkomen. Lees het volledige bericht voor meer informatie.
Verbetert prestatieproblemen met de cachegegevens van productfilters die niet correct waren ingesteld en geladen. Dit zorgt ervoor dat de database niet overspoeld raakt met filtercachegegevens en dat de prestaties van winkels met grote catalogi niet worden beïnvloed. We hebben ook de WooCommerce transients cleanup tool bijgewerkt om de filtercache te wissen wanneer deze wordt uitgevoerd. Als klanten echter het productfilterblok gebruiken en nog steeds prestatieproblemen ondervinden, kan dit de oorzaak zijn en is het opschonen van WooCommerce transients de oplossing. #62575
