I have been watching WooCommerce releases for about a decade, and performance work almost always arrives in small increments. WooCommerce 10.7 breaks that pattern. It goes straight at SQL query counts, cutting specific HPOS queries by 50%. If you have ever had a client’s server buckle during a flash sale because of N+1 serialization, this is the release to read closely.
Performance: where WooCommerce 10.7 cuts the N+1 queries
The main story in WooCommerce 10.7 is query reduction. The /wc/v4/orders endpoint, which headless setups and busy admin dashboards lean on hardest, drops from 271 queries to 132. The trick is aggressive cache priming: order data is preloaded in bulk before the REST API starts serializing. Checkout flows also lose roughly 15% of their total SQL queries.
Redundant queries are easy to ignore until traffic spikes. In my experience a few extra ones during a high-concurrency event are enough to trigger a race condition that locks up the database. That is what makes the new woocommerce_pre_refresh_order_count_cache filter worth knowing about: on a busy store you can now opt out of count refreshes you never needed.
<?php
/**
* Example: Opting out of redundant order count refreshes in high-traffic scenarios.
*/
add_filter( 'woocommerce_pre_refresh_order_count_cache', 'bbioon_optimize_order_count_refresh', 10, 1 );
function bbioon_optimize_order_count_refresh( $should_refresh ) {
// Only refresh if we are not in a heavy background process or high-traffic window
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
return false;
}
return $should_refresh;
}
The Fulfillment API, and the namespace that moved
Order fulfillments finally have a dedicated API, in beta. There is a new wc_fulfillment_shipping_provider taxonomy and typed PHP methods, get_tracking_number() and set_tracking_number(). Until now tracking data lived in order meta, with every shipping plugin picking its own key, so this replaces a guessing game.
The catch is the namespace. If you were testing the early internal versions, it moved from Automattic\WooCommerce\Internal\Fulfillments to Automattic\WooCommerce\Admin\Features\Fulfillments. “Class not found” fatals after a minor version bump are exactly the kind of thing that takes a site down at 2:00 AM, so check your use statements before you ship 10.7.
Store API additions and cart refinements
The Store API keeps filling in gaps. In WooCommerce 10.7 product specifications such as weight and dimensions come back in the standard response. For headless builds, the _links for upsells and cross-sells are now embeddable, so a single ?_embed request can pull the related products for a “you might also like” row instead of several round trips.
The Cart and Checkout blocks also got a fix for 403 errors on cached pages. The cart now fetches a fresh nonce on load and waits for it before any POST. Anyone running heavy edge caching through Cloudflare or Varnish has hit that one. I wrote about the earlier block changes in my guide on WooCommerce 10.6 changes.
If the WooCommerce 10.7 upgrade is eating your dev hours, I can take it off your hands. I have been working with WordPress since the 4.x days.
When 10.7 lands, and what to test
The feature freeze has already passed, and the final release is scheduled for Tuesday, April 14, 2026. If you run a store with complicated shipping rules or heavy REST API usage, test against the RC (Release Candidate) build first. The full technical details are on the official WooCommerce Developer Blog.
Most of the work on your side is small: refactor the tracking logic that reads order meta, and update the namespaces you import. Keep a backup handy and clear your transients after the upgrade. For more on performance, there is my earlier write-up on WooCommerce 10.6 API updates.