What’s New in WooCommerce 9.9
WooCommerce 9.9 was released on 9 June 2025, a week later than expected. When we first wrote about the update, it was scheduled for release on 2 June. The extra time was taken to focus on testing, quality assurance and compatibility with the recent release of WordPress 6.8.
Delays like this aren’t unusual, especially for a platform as widely used and extensible as WooCommerce. Version 9.9 includes several major updates that affect how admin pages load, how checkout fields behave and how products are filtered and exported. Ensuring these changes didn’t cause issues for merchants or developers was likely a priority.
Now that 9.9 is live, we’ve had a chance to review the finished release and compare it to what was initially planned. The good news is that the final version delivers on most of what was expected and adds a few extra tools that weren’t fully confirmed during the earlier development phases.
Performance Improvements Across the Admin
One of the most significant updates in WooCommerce 9.9 is performance. Version 9.9 introduces major improvements across admin pages, reducing load times by as much as 95% in test environments. These benchmarks were based on a store with over 1.2 million orders, 15,000 products and 60,000 customers, using High Performance Order Storage (HPOS). Performance gains were measured across order summaries, comment counts, product lookups and analytics widgets.
These changes make a noticeable difference to how responsive WooCommerce feels behind the scenes. They’re even available out of the box, without the need to change themes or plugins. If you haven’t already enabled HPOS, this release makes a strong case for it.
Product Filters Block for Block-Based Stores
A new Product Filters block has been introduced for stores using block-based product layouts. The block allows customers to filter product listings by price, category, attributes and more without triggering a full page reload.
This functionality is powered by the Interactivity API in WordPress, which allows for smoother, faster frontend behaviour. It’s also optimised for mobile, with filters appearing in a modal rather than cluttering the page. The block is context-aware, meaning it works as expected inside Product Collection blocks and won’t return results unrelated to the current view.
For stores already using the block editor, this is a welcome addition. It removes the need for third-party plugins to offer AJAX-style filters and helps bring WooCommerce more in line with what users expect from modern eCommerce experiences.
Selective Product Exports
Until now, exporting product data in WooCommerce meant exporting everything, even if you only wanted a small subset. In 9.9, you can now export specific products and variations by selecting them by ID directly from the product list.
This change makes it much easier to work with exports for editing, migrating or syncing specific products. Developers can also hook into the export process to define which product IDs should be included programmatically, making it ideal for automation workflows or version-controlled deployments.
Automatic Background Database Updates
WooCommerce has introduced background database updates in 9.9. Previously, updates to the database had to be triggered manually after upgrading the plugin. Now, as of this release, WooCommerce will check for and apply any database migrations automatically in the background during normal admin use.
This change is designed to reduce friction, particularly in multisite and managed hosting environments where manual updates can interrupt workflows. For developers who prefer to keep control of database updates, the behaviour can be disabled using the woocommerce_enable_auto_update_db filter. It’s worth noting that 9.9 itself doesn’t include a database update, but the new system is now in place for future versions.
Conditional Checkout Fields Using the Additional Fields API
Version 9.9 introduces support for conditional checkout fields using WooCommerce’s Additional Fields API. This gives developers the ability to display or hide fields at checkout based on specific conditions such as cart contents, customer types or shipping methods.
The fields are defined using JSON schema, with visibility, required status and validation rules all controlled in code. Validation happens both client- and server-side and hidden fields aren’t submitted at all, ensuring that only relevant data is collected from the customer.
For merchants with more complex checkout needs (e.g. B2B stores, regional shipping requirements, product-specific notices), this provides much more flexibility without the need for custom JavaScript or third-party plugins.
New Payments Settings Page Now Standard
As expected, the React-based Payments settings interface has now been rolled out fully. This page was behind a feature flag in previous versions but is now the default experience for all stores.
The new layout loads faster, presents all payment options in one unified view and improves the experience of configuring both online and offline payment methods. Stores using WooPayments will also see updated onboarding screens, consistent with the new interface.
There’s no action required here as the update applies automatically. Plugin settings and payment gateway configurations remain unchanged.
Native Option to Hide Shipping Rates When Free Shipping is Available
WooCommerce 9.9 includes a small but useful addition: a built-in setting that hides paid shipping options when free shipping is available. This removes the need to rely on custom code or third-party extensions to achieve what’s become a common expectation for online stores.
The new setting can be found in the shipping options area and should help reduce confusion at checkout when both free and paid options would otherwise appear side by side.
Email Template Updates Now Available for More Stores
Modernised email templates, originally introduced in WooCommerce 9.8, are now being rolled out to existing stores that haven’t made any manual changes to their email templates.
If your store qualifies, you’ll receive an admin notification allowing you to preview the new templates or revert to the old layout if preferred. These templates offer better mobile support, more consistent styling and improved accessibility. They’re available to test from within WooCommerce > Settings > Emails.
First-Look Developer Tools: Blueprints and COGS
Blueprints
A new beta feature called Blueprints has been added, allowing you to export and import WooCommerce settings between stores. Available under WooCommerce > Settings > Advanced > Blueprints, it supports core settings such as checkout configuration, tax options and shipping zones.
Blueprints can also be used via WP-CLI, making it easier for developers and agencies to maintain consistency across environments. At the moment, the tool is limited to core settings, but it provides a solid starting point for future configuration management.
COGS (Cost of Goods Sold)
Another beta feature continuing development in 9.9 is WooCommerce’s native support for tracking cost of goods sold. You can now enter COGS values within product settings, access them via the REST API and use CSV import/export tools to manage them in bulk.
Reporting and deeper analytics are planned for the 10.0 release, but this version already makes it possible to start building profit tracking into your store without relying on external tools.
Product Gallery Block Improvements (beta)
The block-based Product Gallery has received several usability and performance enhancements, aimed especially at improving the mobile experience:
- Thumbnails are now placed below the main image
- Scrollable thumbnail navigation replaces static image switching
- Navigation controls are cleaner and more customisable
Performance has been improved significantly, with LCP dropping from around 1.6s to 0.7s in benchmark tests. These changes are still marked as beta and won’t apply automatically. If you’re working with block-based product templates and want to test the new layout, you’ll need to enable it manually.
Other Changes and Developer Notes
- The
wc_current_theme_is_fse_theme()function has been deprecated. Developers should use WordPress core’swp_is_block_theme()instead. - The Tax Rate API now supports non-Latin characters in tax class names, resolving previous issues where tax rates in certain languages defaulted incorrectly.
The current stable release is 9.9.3. You can download it directly from WordPress.org or update via the admin interface as usual.
Before You Roll Out 9.9
WooCommerce 9.9 is one of the most focused and well-rounded releases we’ve seen in some time. And while some of the newer tools are still in beta, they’re well worth testing, particularly for teams managing multiple stores or handling large catalogues.
As always, we recommend testing updates on a staging site before going live, especially if your store includes custom themes or plugins. If you’d like help understanding how the new features work or how they might affect your setup, contact us.