Plenty of WooCommerce releases put “performance improvements” in the changelog and then change nothing you can measure. The WooCommerce 10.7 update actually pays down some architectural debt, at least if you run High-Performance Order Storage (HPOS). If you have ever debugged a slow admin dashboard and counted 200+ SQL queries firing just to list orders, this one is aimed at you.
HPOS performance and the N+1 bottleneck
The headline win is the end of the N+1 query pattern on the /wc/v4/orders endpoint. Serializing orders through the REST API used to fire a fresh database hit for every single item. Cache priming brings that down from 271 queries per request to 132, a 51% reduction. If store speed is what keeps you up, my earlier analysis of WooCommerce REST API caching shows where this started.
There is also a new filter for skipping redundant order count refreshes, which helps on high-traffic stores where the count transients get hammered. If you would rather manage counts externally, hook into it:
add_filter( 'woocommerce_pre_refresh_order_count_cache', '__return_true' );
The new Order Fulfillments API (beta)
If you build custom logistics integrations, the WooCommerce 10.7 update gives you a more mature PHP API for fulfillments. It is still beta, but there are typed methods now instead of digging through get_post_meta() like it’s 2012. The new OrderNoteGroup::FULFILLMENT constant also makes event logging cleaner.
Here is how you talk to the new fulfillment data store:
function bbioon_update_fulfillment_tracking( $fulfillment_id, $tracking_code ) {
$fulfillment = Automattic\WooCommerce\Admin\Features\Fulfillments\DataStore::get_fulfillment( $fulfillment_id );
if ( $fulfillment ) {
$fulfillment->set_tracking_number( sanitize_text_field( $tracking_code ) );
$fulfillment->set_shipping_provider( 'ups' );
$fulfillment->save();
}
}
That is a real break from the “legacy” way of handling tracking data. The official 10.7 release notes have the rest of the technical detail.
Analytics and Store API caching
Analytics exports have been buggy in multicurrency setups for a long time. Background jobs ignored the currency context, so the export did not match what the UI showed. This update fixes that race condition by forwarding query parameters to the background worker. If you skipped the changes in WooCommerce 10.6, 10.7 carries on the same stability work.
The Store API products endpoint got a smaller fix that pays off more than it sounds like: the Last-Modified timestamp is cached now. On a cache hit that skips a database query outright, which matters for headless builds polling for inventory updates.
Security hardening and database updates
This release extends XSS protection through wp_kses_post() to order notes in the v4 REST API. It also fixes a case where sanitize_text_field() was stripping % characters out of payment gateway passwords. That code uses trim() now, so the special characters that complex API keys depend on survive.
Note: this release does run a database update (wc_update_1070_disable_hpos_sync_on_read). Take a full backup, or test on staging, before you hit “update.” The HPOS N+1 PR on GitHub tracks where these optimizations stand.
If the WooCommerce 10.7 update is eating your dev hours, I can take it off your plate. I have been wrestling with WordPress since the 4.x days.
Is it worth upgrading?
For a point release, 10.7 does more than the version number suggests. The 51% query reduction on HPOS and the groundwork for a proper Fulfillments API are both worth having. On a high-volume store, the performance work alone justifies the testing cycle.