WooCommerce 9.0 Has been released on June 18, 2024. 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 includes a database update.
- 🔒 This release contains important security fixes
- See more
Whats coming in 9.0
An improved checkout experience
Checkout Blocks — UI improvements for better conversion: Updates include a refreshed order summary with sticky functionality on desktop, clearer display of local pickup options, improved address form layout, and adjustments to checkout steps. Accessibility improvements were also made to enhance the shopping experience, addressing feedback from Amber Hinds from Equalize Digital in #47470 and #47460.
We’ve updated how we display the selectors for delivery options and we’ve also truncated location information with “Read more” prompt to make the experience easier to navigate for buyers.
The Checkout Address Form received some UI changes where Address Line 2 can now be made required. When optional, it will be displayed as an inline button instead of an input.
Checkout steps will not have step numbers enabled by default, resulting in a cleaner Checkout. These can be re-enable in the editor.
The checkout order summary has received several updates, including a visual overhaul and the implementation of a sticky feature for desktop users, with mobile coming soon. Additionally, free shipping methods will now display as “FREE” instead of “0.00”.
Product Collection Blocks — The next iteration
Add- Prevent collection different than Product Catalog from being filteredPull Request (#45820)
Add – Product Collection: Implement Preview Mode (#46369)
Product Collection: remove Beta label (#47572)
The Product Collections blocks are no longer in beta and are ready for use in your store! We recently announced the development plan for these blocks here and are excited to share the enhanced navigation, responsiveness, granular control over the overall layout, and more robust filtering options that they provide when displaying a store’s products.
Checkout what we’ve added to the Product Collection block in this latest release as part of it’s debut out of beta
This new version includes better distinctions between the general Product Catalog and specialized collections like “On Sale” or “New Arrivals.” Only the Product Catalog remains filterable by buyers, ensuring specific collections maintain consistent product displays regardless of applied filters.
This allows you to prominently display certain products, without the selected filters interfering with their display, as you can see in this demo:
We’ve also added a preview label and tooltip in the Product Editor, clarifying that actual products displayed on the front end may differ based on the viewing context. This is helpful when a Product Collection block is added to any of the following templates: Products by category
, Products by tag
, Products by attribute
, and “Sync with current query” toggle is ON in inspector controls, which results in the products displayed in the editor differing from the products that will be displayed in the front end of the store.
Experimental: Faster HPOS with Full-text search indexes
Add experimental support for FTS indexes in HPOS (#46130)
Search | WooCommerce 8.9 | WooCommerce 9.0 | WooCommerce 9.0 with Full-text indexes |
All (no results) | 3261ms | 1904ms | 676ms |
All (3k+ results) | 6679ms | 3070ms | 547ms |
Customers (no results) | 1049ms | 1033ms | 0.6ms |
Customers (3k+ results) | 2111ms | 2119ms | 40ms |
Products (no results) | 1897ms | 781ms | 0.6ms |
Products (3k+ results) | 3715ms | 1507ms | 53ms |
Benchmarking of WooCommerce order search
Experimenting toward a faster HPOS: We will be enabling an experimental version of Full-text search indexes for order addresses and products, leveraging MySQL’s advanced indexing techniques to speed-up search operations. This improvement, part of the High-Performance Order Storage (HPOS) initiative, optimizes database efficiency and scalability for WooCommerce stores.
When activated, all order searches will automatically leverage these FTS indexes, leading to faster search results. Additionally, we’ve ensured that non-FTS searches remain fast as part of HPOS, providing a balanced performance boost across the board.
To enable this experimental feature navigate to WooCommerce > Settings > Advanced > Features and activate the “HPOS Full-text search indexes option”. Please note, this feature requires HPOS to be enabled. We encourage testing this feature in a staging environment and sharing your experiences and feedback through our GitHub Discussions.
New REST API endpoint for refunds
Add standalone wc/v3/refunds endpointPull Request #46895
This update introduces a brand-new endpoint, wc/v3/refunds
, designed to streamline the process of retrieving refund data.
This endpoint simplifies the process of fetching refund data by allowing users to obtain a list of refunds directly, sorted by date and optionally filtered by a date range. This change removes the need to link refunds to their corresponding orders, streamlining the data retrieval process. The data returned matches that of the orders endpoint, ensuring consistency across your applications.
More new features and updates
A more secure, legible System Status Report (SSR):
Improved readability and better UX for GitHub bug reports, by optimizing the format of the SSRPull Request (#47088)
SSRs in WooCommerce now feature a collapsible section for issues, improving visibility, and enhanced formatting with back-ticks for readability. Security has been upgraded, hiding WordPress and site URLs, database prefixes, and associated tables from public reports, protecting sensitive information during report sharing.
Adjustment to text based settings fields
Fix WC_Settings_API
textarea validation method (#48432)
When editing settings fields in WooCommerce, HTML iframes will now be correctly removed on save for all user roles.
On the shortcode checkout, payment methods will no longer render HTML iframes in the description area unless they are inserted by an extension using a hook or via the Payment Gateway class file.
This is to ensure consistency between legacy and block based checkouts, and for store safety.
Rename Classic Block Templates
Rename classic template blocks to avoid confusion (#44931)
Some block names were often confusing for users. As an example WooCommerce Single Product Block
(a block that represents a “classic” PHP template) was often confused with Single Product
block (modern block).
To address this, we decided to rename the blocks representing so-called “classic templates” to distinguish them from modern blocks more easily and to better describe their purpose.
Checkout the new names below
Before WooCommerce 9.0 | WooCommerce 9.0 |
---|---|
WooCommerce Single Product Block | -> Product (Classic) |
WooCommerce Product Grid Block | -> Product Grid (Classic) |
WooCommerce Product Taxonomy Block | -> Product Category (Classic) |
WooCommerce Product Tag Block | -> Product Tag (Classic) |
WooCommerce Product Attribute Block | -> Product Attribute (Classic) |
WooCommerce Product’s Custom Taxonomy Block | -> Product’s Custom Taxonomy (Classic) |
WooCommerce Product Search Results Block | -> Product Search Results (Classic) |
HTML Tag Update in Block Templates:
Replace div element with main in block templates (#47119)
We will be changing the main HTML tag from <div> to <main> in several block templates in an effort to improve accessibility. The <main>
tag defines the central content of a page, providing better support for assistive technologies such as screen readers. Checkout the developer advisory on this for more information.
API Updates
- Add support for ‘customer’ field to REST orders controller (v2/v3)(#46878)
- Prevent product from being saved prematurely when updated via REST API (#46674)
- REST API: Add standalone
wc/v3/refunds
endpoint (#46895) - REST API: Add variation product type to response (#47377)
- REST API: Add missing line item schemas to refunds endpoint (#47254)
- Remove the Legacy REST API from WooCommerce core (#40627)
- Fix: Deleting a shop coupon using API returns a 500 error (#47474)
Other important information
Database updates
📀 Run wc_update_900_add_launch_your_store_tour_option on WC 9.0 update (#47634)
This change adds a new update function to add the woocommerce_show_lys_tour
option
This release contains important security updates
📆 We released a fix for the following vulnerability on June 4, 2024. 9.0 has also received this fix:
The unintended loading of a file on the frontend of WooCommerce storefronts for versions 7.8.0 through 8.9.1 was fixed as part of a backport issued for versions 7.8-8.9. Read more in this Developer Advisory.
📆 We released a fix for the following vulnerability on June 10, 2024. 9.0 has also received this fix:
A vulnerability introduced in WooCommerce 8.8 allows for cross-site scripting — a type of attack where a bad actor can manipulate a link to include malicious content, for example, JavaScript, on a page. While the content is not saved to the database, the links may be sent to victims for malicious purposes. Read more in this Developer Advisory
Coming soon mode is…coming soon
In our pre-release post we mentioned an exciting new feature that allows merchants to build their stores behind a coming soon page would be introduced in 9.0. After testing through our release process, we decided we still had some finishing touches before launching this feature, which will be included in the upcoming WooCommerce 9.1.
You can still test this coming soon feature and learn more about in this post.
Changelog
See all bug fixes and improvements
See all features and additions
See all updates and tweaks
See all developer updates
See all enhancements
View the full changelog.
Get WooCommerce 9.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