WooCommerce 10.0 Has been released on July 14, 2025. This post highlights what’s new in this version of WooCommerce.
See our update guide.
Download directly from WordPress.org.
Other important information:
- 📀 This release does include database updates.
- See more
What’s coming in 10.0
Frontend Accessibility Improvements
WooCommerce 10.0, when used with a core WordPress or accessibility-ready theme, will be fully conformant with Web Content Accessibility Guidelines (WCAG) 2.2 level AA and substantially conformant with level AAA.
These significant improvements span multiple PRs and include: a comprehensive semantic markup overhaul for better screen reader interpretation; robust form feedback and error handling with clear status messages and error identification; and enhanced keyboard-first navigation and focus management across all key block-based areas including cart, product galleries, and checkout.
To learn more about these specific improvements, read our recent post highlighting A Year of Accessibility Improvements in WooCommerce Core.
Shareable Checkout URLs
[Checkout] Support for shareable checkout URLs which pre-populate the cart/coupons. #58140
Merchants can now create custom links that automatically populate the cart with specific products and product variations and redirect customers straight to checkout. This makes it easier to share ready-to-buy bundles through email campaigns, social media, or landing pages.
For example:
https://yourstore.com/checkout-link/?products=123:2,456:1&coupon=SPRING10
In this link:
- Product ID
123
will be added with quantity 2 - Product ID
456
with quantity 1 - The coupon code
SPRING10
will be applied - The customer is taken directly to the checkout page
Merchants can drive conversions with fewer steps.
Customers get a faster, simpler checkout experience.
Coupon Improvements
Reveal admin errors when saving a coupon with invalid data #57911
Added admin validation for Minimum/Maximum spend coupon fields #57942
Made the Coupon expiry date placeholder translatable #57946
Fixed items sorting by price when applying discounts #58013

In this release, we fixed a number of long-standing issues around the admin experience of configuring a coupon, as well as how restricted coupons calculate discounts in the cart.
When admins try to save an invalid coupon configuration, error messages are now clearly displayed, making it easier to understand what needs to be corrected and which values were not saved. Additionally, a new validation rule prevents saving the Maximum spend coupon field if it is less than the Minimum spend. The Coupon expiry date field placeholder is now translatable, helping store admins configure all coupon settings in their own language.
Lastly, we’ve improved how coupons, that apply to a limited number of products, calculate discounts in the cart. Now coupons correctly prioritize and apply discounts on the higher-priced items by checking their unit price and not their subtotal. This ensures that the most valuable items receive the discount first, even when product quantities vary and resolves an issue that made coupon discounts decrease in the cart when more items were added.
CSV Product importer now supports rich content
Enable users to upload product CSV files containing html descriptions while importing #58016
In previous versions, users were unable to import CSV files containing HTML content (formatted descriptions, tables, etc.). Users had to manually strip all HTML formatting from product descriptions before importing or use dangerous security workarounds like disabling MIME check for the entire site.
The enhanced CSV importer will now correctly handle files with HTML content while maintaining security standards for other harmful imports. WooCommerce will preserve all formatting (tables, bold text, etc.) in imported products, making bulk updates and migrations from other platforms even easier.
More new features and updates
Customize sale badge text for blocks
On Sale Badge: expose filter allowing to change the label based on product context #57914
A new filter has been added to allow full control over the sale badge text shown on products within block-based layouts. product types or categories.
See more info
The filter, woocommerce_sale_badge_text
, works on the frontend only and receives the full product object, enabling dynamic text adjustments based on product data, for example, showing different messages for different
Intelligent Checkout Block loading indicators.
Checkout Block: Show load indicators for shipping options only when relevant address fields change. #57374
We’ve optimized the Checkout Block to only show shipping options loading states when fields that actually impact shipping calculations are changed.
See more info
Previously, any address field modification triggered these loading indicators. The Checkout block now limits loading states to essential fields from the shipping address: country
, state
, postal code
, or city
. Changes to other fields like names, address lines, company, or phone number no longer trigger unnecessary shipping options updates. Shoppers will see fewer loading animations, and the checkout will feel faster when they make address changes that don’t impact shipping costs.
Payment setup integrated into Launch Your Store onboarding.
[NOX to LYS] Add the NOX in-context flows to LYS. #58291
With the successful launch of the WooPayments native onboarding experience in WooCommerce 9.9, we are expanding its reach and integrating it into the Launch Your Store flow to help our users get their store fully set up and ready to start selling with Woo.
By integrating payment setup within the Launch Your Store flow, users have the complete toolset at hand to take their store live and start processing real payments without needing to reach out to other parts of the WooCommerce admin.
See more info
Users can fully onboard with WooPayments or switch to processing real payments right within the Launch Your Store screens.


First Looks
Add to Cart + Options (Beta) Block
Remove Add to Cart + Options feature flags #58602
We are introducing the beta of the Add to Cart + Options block, now available in all block themes. Designed to be used on the Single Product page or inside the Single Product block, this new block allows customizing the Add to Cart form by reorganizing, removing or adding inner blocks, and by adjusting their styles to match any design. Changes are applied per product type, making it easy to tailor complex add-to-cart forms, like the ones for variable or grouped products, without affecting other product types.


Besides the new customization options, the block also enhances the add-to-cart experience for shoppers:
- Built on the Interactivity API: Enables adding products to the cart without a page reload for a faster, smoother experience.
- Live sync with other blocks: Changes in quantity from the Mini-Cart or Product Collection block are reflected instantly in the Add to Cart + Options block and the other way around—no refresh needed.
- New Pills display mode for variation attributes: An alternative to dropdowns, making variable product selection more intuitive and engaging.
For extension developers, we encourage you to test your extensions with the new block. If you find any limitations that you think need to be fixed in the Add to Cart + Options block, let us know opening an issue on GitHub. In the future, we plan to introduce new extensibility points that make it possible for extensions to migrate to blocks and better take advantage of the new Add to Cart + Options block technologies.
Product Gallery (Beta) Block
Use Product Image in Product Gallery #58651
In order to provide you with more control over the images, the product gallery block structure now uses the Product Image as a way to display images. However, this is a breaking change. This change was necessary to make the block more future-proof, and we wanted to implement it before calling the block stable.
Users who inserted the Product Gallery (Beta) block before WooCommerce 10.0, please go to the Editor where you use it, delete the block, and reinsert it again.
We’re introducing a grace period of 2 versions (until WooCommerce 10.2), during which the block will still work even without reinsertion. However, we’re planning to remove the compatibility bridge in WooCommerce 10.2, which will cause the block to malfunction on the frontend if the action wasn’t performed.
Other important information
CSS Container Queries for Cart and Checkout Blocks
Order summary: Switch to css container width detection for the cart and checkout blocks #58476
Developers can now use CSS Container Queries (@container
) to style child components based on parent width, eliminating the need for classes like .is-large
, which were added to the page with JavaScript after the DOM was loaded. Legacy classes remain for compatibility, but we recommend using the new approach for cleaner styling and fewer layout shifts.
Simplified Cart Block Totals
Remove the shipping calculation section in the cart block #58066
We’ve reduced the complexity of the Cart Block totals area by removing the shipping calculator, improving wording, and hiding duplicate values. Customers will calculate shipping during checkout once they have provided an address, or they can opt for Local Pickup.
This update aims to push customers to the checkout instead of filling out forms on the cart page. It also removes the complexities around showing a mix of both Local Pickup and Shipping Rates on the cart page since some do not require an address.
Customers can still apply coupons on the cart page, or see their selected shipping rate if they are a returning shopper or have previously entered checkout.
- Developers have to worry about less integration points; shipping rates are only presented during checkout. There is less code to maintain specific to the cart block, and there will be less edge case bugs discovered due to how the local pickup system works, and partial address input.
- Merchants can expect less issues with incorrect rates appearing on the cart page due to incorrect or partial address being entered in the shipping calculator.
- Customers enjoy a simplified checkout flow without unnecessary forms, and less confusion if local pickup rates are present but shipping rates are not, since shipping rates will be shown after entering their address.
Database updates
📀 wc_update_1000_multisite_visibility_setting
(PR #58613)
📀 wc_update_1000_remove_patterns_toolkit_transient
(PR #58528)
Changelog
View the full changelog.
Get WooCommerce 10.0
👉 To upgrade: See our update guide or download the latest release from WordPress.org.
🐞 Found a Bug? Please submit a report it on GitHub.
Leave a Reply