WooCommerce 9.5 is coming soon…
The post will track the work we do as we prepare to release 9.5 as well as provide a preview of what’s to come in this new version.
Release Schedule:
- Final Release — December 16, 2024
- See updates
Hey folks, on Monday, November 11th, 2024, we kicked-off our Code Freeze ahead of the release of WooCommerce 9.5. As we begin the testing phase, and get the release ready for Beta, we wanted to share some spoilers and document any updates to the expected release timeline.
Check back here for more updates ahead of the WooCommerce 9.5 release, scheduled for December 16, 2024.
What’s coming in 9.5
New Collections in the Product Collections Block: We’re happy to announce that with WooCommerce 9.5 we’re offering you three new product collections! Now, upon inserting Product Collection block you can choose from one of three new collections – Handpicked Products, Upsells, Related Products, and Cross Sells.
In addition, Related Products, Upsells, and Cross Sells allow you to choose a point of reference, such that, if you place the block in a place that provides the product context (e.g. in a Single Product template or block), you can choose whether to use current product or specific product as a reference point. As a result, content can adjust depending on what product the shopper is browsing for, or, you can promote specific products instead.
New Customer Notification Email: We have introduced a new email notification that will be sent to customers when an order payment fails. Previously, only merchants received notifications about failed payments. This new notification can be configured in WooCommerce > Settings > Email > Failed Order
.
Payment Status in Receipts: We have introduced a new Payment Status
field to customer order receipts to indicate whether the payment is successful. The receipt will now display “Failed” or “Success” under the status header, giving the customer an opportunity to respond faster, and resolve their order status!
Removing Feature Flag for Delayed Account Creation: We are making it official! The new delayed account creation feature is available and adds a “Create Account” block to the order confirmation page. Customers can use this to create an account after checkout which is linked to the newly placed order. This benefits the merchant by encouraging future sales from repeat customers, and benefits customers by promoting accounts that provide order tracking, faster checkouts, and exclusive offers.
Experimental Feature Flag – Add to Cart Stepper: We recently added a stepper layout option to the Add to Cart with Options block. The stepper
layout option is requested by multiple users in the community. We will be requesting feedback on this experience before rolling it out in a future release. Check out our post on how to utilize and provide feedback for this improvement.
Improving Add to Cart Validation: Store API’s add-to-cart action’s compatibility with 3rd party extensions has been improved. This change makes cart_item_data
available for hooks attached to the woocommerce_add_to_cart_validation
validation filter. This decreases the likelihood of validating cart configuration that is different from what was sent via the Store API request.
Related By Control for Related Products Collection: Enjoy increased flexibility in product curation and product displays! The “Related Products” collection in the Product Collection block now includes a new “Related by” control that gives more control over how related products are determined. This control allows merchants to choose whether related products should be based on product categories, tags, or both.
New Sorting Options for Product Collection Block: The Product Collection block now includes several new sorting options to give merchants more flexibility in how they display their products such as manual, random, and ratings of low-to-high, and high-to-low. These new sorting options complement the existing ones, giving merchants comprehensive control over how their products are presented to customers.
WordPress.com Connection Screen Added: A streamlined flow for connecting your site to a WordPress.com has been introduced, including a passwordless login and signup. This screen will be offered when first installing WooCommerce and in the setup flows for our services like WooPayments.
Cart and Checkout Block Enhancements: There are a number of small visual improvements to make textual information clearer and remove any inconsistencies in style and feel of the cart and checkout. The look and feel of dark mode has also been significantly improved.
Developer Advisories
Full Deprecation of Navigation Feature: In late 2020, WooCommerce introduced a new Navigation feature, which was only accessible by manually setting an option. However, this feature was never fully activated and saw limited adoption. While it was officially removed in WooCommerce 9.3, the associated classes were deprecated but retained for backward compatibility. Despite the limited use, many extensions updated their codebases to integrate with the Navigation feature. Check out the full post here.
Soft Deprecation of Product Grid Blocks: The soft deprecation of Product Grid Blocks in favor of their equivalents in Product Collections has begun: “Soft-deprecation” means we encourage you to start using a newer equivalent of the block, however the soft-deprecated block will still work correctly. In practice, that means hiding block from the inserter. Check out the detailed post here.
Flag Added to Allow React 18 Rendering: A while back we updated to React 18 for rendering Cart and Checkout front-end blocks, but some plugins ran into troubles with this so we reverted those changes. Now we reintroduce this, but opt-in via a flag. This will allow plugin developers to test their code with React 18 so we can eventually enable React 18 rendering by default. This will be important because ReactDOM.render
is removed all together in React 19.
We encourage all plugins that integrate with the checkout block, especially with the payment area, to test out the change. You can enable it via a constant. In your wp-config.php
Add define( 'WC_EXPERIMENTAL_USE_REACT_18', true );
to enable React 18 in your environment.
Our plan is to roll out React 18 as the default in WooCommerce 9.6, so we encourage you to use the 9.5 release to test and make any necessary updates to your code. You can provide feedback on GitHub for any issues you’re having with this change.
Coming Soon Mode Caching: Upon advice from the hosting community, we replaced the Cache-Control: no-cache
header on pages in coming soon mode with a directive to cache for 60 seconds. This aims to allow CDNs and other caching mechanisms to reduce the risks of DDoS attacks while maintaining reasonable update times. See our documentation for step-by-step instructions how to integrate server caches with coming soon mode.
API Changes
- Add the new
/orders/{id}/actions
endpoint #52050
DB Changes
wc_update_950_add_brands_enabled_option
- PR: Autoload woocommerce_allow_tracking option
- Short description: Adds autoloading for woocommerce_allow_tracking option.
wc_update_950_tracking_option_autoload
- PR: Run
wc_update_950_add_brands_enabled_option
on WC 9.5 update - Short description: Adding a WC update function so that Brands will become available to 5% of users.
- PR: Run
Changelog
See all bug fixes and improvements
- Fix – Fix “missing ‘price’ property in ‘offers’” error in Google Search Console #52871
- Fix – Fix horizontal scrolling on Analytics pages. #52971
- Fix – Fix mobile styles for delayed account creation. #52736
- Fix – Fix PHP and Core API tests #52850
- Fix – Fix the Payments main menu item linking to a blank page when onboarding tasks are hidden. #52900
- Fix – Fix the registration of routes in controllers inheriting from RestApiControllerBase #52817
- Fix – Fix
woocommerce_reports_charts
filter #53126 - Fix – Product Elements: fix the issue that some product elements like price or rating were not available in Patterns #53077
- Fix – StyleAttributesUtils: escape className attribute #53026
- Fix – Prevented a i10n-related warning when using WordPress 6.7 with Brands #52912
- Fix – Added strict check for PR and release number extracted from Issue body #52002
- Fix – Add focus indicator to image on product card #52011
- Fix – Add focus indicator to select and text inputs on Cart/Checkout block pages #52010
- Fix – Add focus ring to close notice banner button #52079
- Fix – Add missing
wp-block-woocommerce-{name}
class to Add to Cart with Options, Product Image, Product Rating, Product Rating Stars, Product Rating Counter and Product Image blocks. #51558 - Fix – Add screen reader text to the gallery trigger link. #50493
- Fix – Adds screen reader text to announce as “Page X” instead of just the number #50447
- Fix – Adds the missing global_unique_id field to the product import mapper #52240
- Fix – Adds the missing global_unique_id to the product export columns #51703
- Fix – Add To Cart Form – Stepper Layout: remove flex #52481
- Fix – Add to Cart Form: Ensure compliance with min, max, and step HTML attributes. #52487
- Fix – Add To Cart Form: hide stepper when product is sold individually. #52193
- Fix – Add track for skip guided setup click and updated the new design for skip guided setup #47194
- Fix – Adjust sales badge color contrast #52080
- Fix – Allow setting the Shop page as the homepage in block themes #51626
- Fix – Announce to screen readers when the variations have been cleared #50183
- Fix – Associate shipping calculator button to its form via aria-expanded/controls attribute #52126
- Fix – Avoid duplicate custom classnames #51910
- Fix – Avoid rendering the dash in the receipts when there’s no info about the card used to pay the order. #52399
- Fix – Cart block: Fix a bug where duplicate links are rendered to open the cart shipping calculator. #52657
- Fix – Change e2e test to use plugin slugs instead for better stability in core profiler tests #52252
- Fix – Core profiler remove selecting activated plugins in extensions page #52029
- Fix – Correctly fetch
siteUrl
to fix brokenBack to Store
button #52376 - Fix – CYS: Remove GO_BACK_TO_HOME state from the Transitional screen #52042
- Fix – Define legacy fee properties to prevent PHP notice #52063
- Fix – Disable pricing fields when the product type is grouped #51987
- Fix – E2E tests – fixing activateTheme util to work on wp env and external envs #51509
- Fix – Ensure local state is not overwritten by server when using
extensionCartUpdate
#49311 - Fix – Ensure QuantityLimits::limit_to_multiple() receives correct values to prevent fatal errors. #51451
- Fix – Ensure session is loaded in cart functions to prevent fatal errors. #51442
- Fix – Ensure the order action aria-labels are different for each action. #51668
- Fix – Ensure the URL for the transitional page is correct whenever accessing it for the very first time after completing the CYS flow #52271
- Fix – Fix “Coming soon” bar styles are missing in several themes #52290
- Fix – Fix “Finish setup” icon remains if tasks are disabled without being completed #52204
- Fix – Fix #47967 where user’s could place empty orders with the Checkout block. #51810
- Fix – Fix ‘0’ character appearing in some circumstances in the CYS logo section #52371
- Fix – fix: “Change address” cart button compatibility w/ dark themes #51878
- Fix – fix: i18n shipping region settings placeholder text #52016
- Fix – Fix: Multiple issues related to MySQL having
ANSI_QUOTES
enabled in Product Filters #51316 - Fix – Fix: Prevent
is-descendent-of-single-product-block=false
from being added to external product URLs. #51369 - Fix – Fix: Product Collection block inside Single Product block was not rendering correctly on frontend. #52299
- Fix – Fix: React error in filter blocks due to duplicated renders #51840
- Fix – Fix: show correct attribute and price filter data on the category/tag template. #50341
- Fix – fix: ValidatedTextInput aria-errormessage matching #51971
- Fix – Fix Add To Cart form layout in the post editor. #51662
- Fix – Fix Analytics Dashboard rendering for malformed preferences. #51947
- Fix – Fix an issue in which certain incompatible payment gatways wouldn’t surface in the Checkout editor page. #52070
- Fix – Fix border cut issue on tasklist and inbox widgets in WooCommerce homescreen #52693
- Fix – fix broken links #52495
- Fix – Fix bugs in the Marketplace > My Subscription page #51610
- Fix – Fix clearing search input in In-App Marketplace using close icon #51916
- Fix – Fix double rendering of the header and footer when the coming soon mode is enabled with the store pages only option with a non-FSE theme. #51633
- Fix – Fixed a bug where the Local Pickup title in the Shipping Method block would not save correctly if it was the same as the default “Pickup” #51580
- Fix – Fixed case sensitivity of coupon email restrictions from Store API #52187
- Fix – Fixed geolocation so if it geolocates to a non-allowed country, no country is selected in checkout. #51885
- Fix – Fixed issue with translation loading for React-based WooCommerce pages when non-standard plugin directory names are used. #52448
- Fix – Fixes wrong error message when importing products with existing SKU. #51966
- Fix – Fix fatal when OrdersTableMetaQuery::generate_where_for_clause_value() didn’t return a string #52065
- Fix – Fix incorrect block types in WC’s refunds policy page #51620
- Fix – Fix k6 performance test that checks for incorrect title when viewing order page #51334
- Fix – Fix local pickup table styling and saving after sorting locations. #52644
- Fix – Fix lys whats next actions and add unit tests #52182
- Fix – Fix marketplace category selector scrollbars and buttons #51527
- Fix – Fix mobile app modal UI #52201
- Fix – Fix Mobile app task is not marked as complete after clicking the dismiss button #52370
- Fix – Fix OBW continue button overlap with checkbox in mobile screens #52205
- Fix – Fix page header for subpages with tabs. #51606
- Fix – Fix postcode validation within the legacy cart show_shipping method. #51623
- Fix – Fix Printful link to use noopener,noreferrer #52524
- Fix – Fix product base incorrectly flagging as store pages on pages with same prefix #52028
- Fix – Fix RTL CSS on the installation wizard #52206
- Fix – Fix script tag handling for inner blocks in the cart #51498
- Fix – Fix StoreAPI erroring when a param is an integer #52361
- Fix – Fix subscription status and action items for free (lifetime) subscriptions #51628
- Fix – Fix Tax Analytics total results & export #51270
- Fix – Fix the social links icon color from footer-large pattern to automatically pick the icon color from the site theme styles #52344
- Fix – Fix unable to close the Core Profiler dropdowns by clicking the dropdown self #52526
- Fix – Fix Upsells and Cross-Sells selection changes depending on block position #52235 #52235
- Fix – Fix wrong CSS class used by product grids that breaks theme.json styling. #50697
- Fix – get_checkout_fields() should return empty array if requested fieldset is not defined #51508
- Fix – Gracefully handle deprecation of Navigation feature classes. #52248
- Fix – Hide text cursor for platform selector #52093
- Fix – Lower opacity for payments section to work across light and dark backgrounds #52241
- Fix – Make coupon code errors announced by screen readers #52040
- Fix – Make sure session exists before calling its functions in the Cart StoreApi route #52410
- Fix – Modify Product Collection block image alt #52593 #52593
- Fix – Modify product import file check to use the WP filesystem API #51540
- Fix – Patterns: Remove broken Product Hero 2 Column 2 Row pattern #52624
- Fix – Preserve dash when saving Mongolia postcode. #51674
- Fix – Prevent Business Services products from showing pricing information when they’re displayed as regular product cards on the Extensions page. #52118
- Fix – Prevented phone numbers containing Unicode control characters from failing validation during Checkout. #52476
- Fix – Prevent fatals resulting from incorrect reference to
WC_Site_Tracking
during admin notes API requests. #51525 - Fix – Product Collection: Fix “Products to show” inspector control not showing as expected on Cart template #52186
- Fix – Product Collection: Fix inspector control showing empty section #52543
- Fix – Product Collection: fix JS error when client-side nav is disabled #52039
- Fix – Product Collection: fix the price range posts clauses. #51676
- Fix – Product Collection: Fix Upsells collection not showing linked product on Frontend on Single Product Template #51730
- Fix – Product Collection: Hide preview label when specific product is selected #52150
- Fix – Redirect to the canonical single product URL if the wrong category slug has been used. #51637
- Fix – Refactored core profiler plugins page and added an error screen for when the user does not have permission to install plugins. #52301
- Fix – Remove alert role from informational notices #51651
- Fix – Remove siteground-specific cache invalidation. #52365
- Fix – Remove the subscription to the OPTIONS_STORE_NAME since its trigered many times, using useSelect instead #51819
- Fix – Remove underline from sale prices in WooCommerce block themes #51462
- Fix – Render Advanced CSS Classes in the Product Image block #50662
- Fix – Restore total_formatted column in exported reports #52174
- Fix – Return an empty string from
template_include
filter instead of null to avoid PHP fatal error with conflicting plugins using strict types. #51751 - Fix – Set a fixed color to Select2 dropdown options #52244
- Fix – Set server-side render of Mini-Cart icon to correctly show/hide the count based on block setting #52124
- Fix – Store API will ensure the cart response has valid quantities for items if setting limits via filters #52154
- Fix – Correctly respect the generate password option for accounts created post Checkout. #53277
- Fix – Add new required props to RouterProvider #53433
See all features and additions
- Add – Adapt receipt to take into account failed orders. #51853
- Add – Add a11y to the color swatches #51715
- Add – Add a method to the order object to get info about the card used for payment #52173
- Add – Add a separator to the Checkout “Place order” button, customizable via block style variations. #52017
- Add – Add banners for promoting order attribution plugin (woocommerce-analytics). #52661
- Add – Add color helpers for the Product Filters block #52506
- Add – Add coming soon newsletter feature flag #52529
- Add – Add Dimensions to Product Collection block #51420 #51420
- Add – Added placeholder in the checkout block editor when payment methods are not configured #52192
- Add – Added tracking for number of brands. #52056
- Add – Add global prop to Tracks events for user role #52533
- Add – Add Kliken Meta Ads & Pixel in core profiler recommendation 50% in place of pinterest #52295
- Add – Add link back to cart in the header of the distraction free checkout template. #51948
- Add – Add new coming soon templates, add Template Types meta data #52640
- Add – Add Notice generic block for the new product editor #51740
- Add – Adds a flag to allow WC Blocks to render with React 18 for testing #52473
- Add – Add sales low to high and sales high to low filter options for product collection block #51790
- Add – Add Settings package, feature flag, and initial page. #52391
- Add – Add the Cost of Goods Sold related code and REST APIs for the order and order item classes #52067
- Add – Add the Cost of Goods Sold related code and REST APIs for the product class #51675
- Add – Add theme type (block theme or classic theme) to System Status Report #51682
- Add – Add the new
POST /orders/{id}/actions
endpoint to allow re-sending the order details to customers. #52050 - Add – Add to Cart with Options: Add Quantity Selector option. #48876
- Add – Allow the text of the return to cart link to be edited in the checkout block #52262
- Add – Comment: Experimental: add colors panel to the Price Slider block. First iteration #52507
- Add – Enabled delayed account creation after checkout on the order confirmation page. #52554
- Add – Include the last 4 digits of a payment card in the order details shown to customers when the info is available #52474
- Add – New “Related Products” Product Collection type. #51076
- Add – Product Collection: Add “Manual (menu order)” sorting option #52221
- Add – Product Collection: Add “order” reference for “Upsells” and “Cross-Sells” collections. #52258
- Add – Product Collection: Add “Random” sorting option #52322
- Add – Product Collection: Add “Rating, low to high” and “Rating, high to low” sorting options #52372
- Add – Product Collection: Add “Related by” setting to Related Products collection #52580
- Add – Product Collection: Add Cross-Sells collection #52068 #52068
- Add – Product Collection: add sorting options by price. #51670
- Add – Product Collection: add tracks when replacing one collection with another #52266
- Add – Product Collection: Add Upsells collection #51374
- Add – Product Collection: allow setting a “current product” as a point of reference for collections #51359
- Add – Product Collection: Implement the Hand-Picked collection #51141
- Add – Product Collection: Support registering product collection that isn’t displayed in Collection Chooser #52057
- Add – Product Collection Telemetry: Convert Product to Product Collection and revert to Products #52651 #52651
- Add – Rating Filter: first iteration of Minimum Rating feature #52484
- Add – Rating Filter: introduce RatingStars component #52468
- Add – Record Cancel and Close events on modal to change collection type #52314 #52314
- Add – Send a customer notification email when an order is marked as “failed”. #51778
- Add – Track first and last 20 orders to Weekly Tracker Snapshot #52074
See all updates and tweaks
See all developer updates
- Dev – Checkout: Revert #52044 Add loading placeholder and payment method toggle. #53085
- Dev – Add a site reset plugin for e2e testing with externally hosted sites #51720
- Dev – Add new ci jobs for e2e tests with pre-release WP version #51814
- Dev – Adds constants for all legacy order statuses to centralize them, reduce typos, improve code strictness, ease status lookups, and enhance documentation. #52427
- Dev – Adds constants for all order statuses to centralize them, reduce typos, improve code strictness, ease status lookups, and enhance documentation. #51919
- Dev – Add To Cart With Options – Stepper layout: implement feature under feature flag #52573
- Dev – Add unit tests to check the getFontFamiliesAndFontFaceToInstall function #52172
- Dev – A WP plugin that will reset a test WC site to a known state for running test suites #51593
- Dev – Blocks E2E: fix plugin namespace #51771
- Dev – CI: install core composer dependencies synchronously in CI-environment. #52395
- Dev – CI: omit caching baseline results in perfromance metrics job. #51804
- Dev – CI: update performance metrics job benchmarking. #51772
- Dev – CI: update perfromance metrics job and improve execution time. #51710
- Dev – Comment: move plugins/woocommerce-admin to plugins/woocommerce/client/admin #49647
- Dev – E2E tests: fix the global teardown failing with wp6.7-beta1 #51958
- Dev – E2E tests: remove basic-spec.spec.js #51707
- Dev – E2E tests: remove setup-onboarding.spec.js. It only contains a basic check that is implicit with any other test. #51706
- Dev – E2E tests: updated locator to work with WP6.7 #52581
- Dev – E2E tests: Update relevant e2e tests to be compatible with the upcoming changes in WP 6.7 #52304
- Dev – E2E tests: update utils to not wait for http reponse when navigating to editor page #52577
- Dev – Exclude skipped e2e test issues from stale bot closure #51528
- Dev – Fix an issue where database is randomly disconnected while running Blocks E2E tests. #51658
- Dev – Fixed storybook build #51996
- Dev – Fixing some broken documentation links #51967
- Dev – Fix shopper mini cart test compatibility with external envs #51741
- Dev – Fix WooCommerce Blocks storybook. #51679
- Dev – Minor tweaks in core build process when copying assets from other packages. #51612
- Dev – Monorepo: bump and patch wp-env to reduce amount of crashes in CI. #52254
- Dev – Monorepo: consolidate syncpack config around React 17/18 usage. #52022
- Dev – Monorepo: consolidate TypeScript config files and JS test directories naming. #52191
- Dev – Monorepo: developers documentation update. #51820
- Dev – Monorepo: relax webpack towards TS errors in admin package. #51993
- Dev – Monorepo: tweak monorepo composer packages installation (no symlinking) #52331
- Dev – Moved changelog generation to build step #51182
- Dev – Moved the e2e environment setup script to the monorepo #52318
- Dev – Point release request flow for development use. #52160
- Dev – Replace __experimentalGetGlobalBlocksByName with stable getBlocksByName for Product Collection block #51773
- Dev – Tweaks for better pnpm install performance. #51538
- Dev – Unskip analytics-data.spec.js test on external sites. #51681
- Dev – Update editor util to use new string Block Inserter which is compatible with both Gutenberg and without it #52107
- Dev – Update makepot-audit include path: Replace ‘client’ with ‘assets #52096
- Dev – Update product collection E2E test to be more reliable when testing the collection block with product context. #51663
- Dev – Update product collection E2E test to be more reliable when testing the preview feature. #51653
- Dev – Updates a couple of locators to provide compatibility for an extension test in qit #51945
- Dev – Updates to core e2e tests for WP 6.7 compatibility #51965
- Dev – Update storybook commands for WooCommerce Blocks to use wireit. #51701
- Dev – Update the
.distignore
file to exclude the ./client/admin folder from zip #52052 - Dev – Uses the newly introduced order status constants in unit tests. #51920
- Dev – [e2e tests] Remove update-woocommerce spec #52493
See all enhancements
- Performance – Add frontend performance metric tests #52347
- Performance – Add sizes attribute to Product gallery thumbnail images to better load the appropriate resolution #52073
- Performance – Cache block asset resource hints #51874
- Performance – Cache block pattern data #51802
- Performance – Check if $order_key is empty in get_order_id_by_order_key() before running the sql query. #40254
- Performance – Limit block asset registration to rendered blocks on the frontend #51517
- Performance – Limit loading product block editor to admin pages and rest requests #51954
- Performance – Optimize Coming Soon badge performance with early exits #52477
- Performance – Optimize
test_import_sample_products
unit test performance #52523 - Enhancement – Add additional body class for the account dashboard #51147
- Enhancement – Add a setting to the Mini-Cart block to navigate to checkout on click instead of opening the drawer. #51283
- Enhancement – Add support for
email
query parameter inOrderActionsRestController
. #52454 - Enhancement – Checkout: Add a collapsible order summary for smaller screens. #52253
- Enhancement – Create a wrapper function for all external dependency function calls for safety for remote logging #51432
- Enhancement – Improve remote logging user data privacy #52321
- Enhancement – Improve the accessibility of form errors on the legacy checkout page #49094
- Enhancement – Improve visual styles for Cart/Checkout in light and dark modes. #51585
- Enhancement – Removed CouponPageMoved class. #52475
- Enhancement – Use product name as fallback alt text in product gallery #51936
- Enhancement – [Experimental] Allow disabling product descriptions in the product summary. #52503
View the full changelog.
Update timeline
✅ Code Freeze
Added: November 11, 2024
On November 11th, we implemented the Code Freeze and began preparing to release the Beta. Stay tuned for the upcoming version in the WooCommerce Beta Tester plugin.
✅ WooCommerce 9.5 Beta
Added: November 13, 2024
On November 13th, we released the 9.5 Beta version.
On November 27th, we released 9.5 Beta 2.
✅ WooCommerce 9.5 RC
Added: December 4, 2024
On December 4th, we released 9.5 RC1.
[ ] WooCommerce Release 9.5
Scheduled: December 16, 2024
Leave a Reply