WooCommerce 9.6: Fresh new tools and modernizing classics

WooCommerce 9.6 has been released on January 20th, 2025. This post highlights what’s new in this version of WooCommerce. View the full changelog.

Other important information:

  • ๐Ÿ“€ This release does not include a database update.

Latest Release:

๐Ÿ‘‰ WooCommerce 9.6

See our update guide. Download directly from WordPress.org.

About:

  • โœ… Backwards compatible
  • Commits: 435
  • Contributors: 88

Brands has landed

Itโ€™s finally here, the freshly merged Brands plugin will now be automatically enabled for all users. We first introduced the feature to you in October, and have recently published an updated blog post that confirms the featureโ€™s integration into core.

Starting today, Brands will move out of beta and be automatically enabled for everyone.

This update simplifies your experience and ensures that brand management becomes a seamless part of WooCommerce stores. Learn more here.


Smarter defaults for measuring unit

Set default weight and dimension units based on country #53652

We now match measuring units to store location during onboarding, with U.S. stores defaulting to imperial units (lbs and inches). Units now automatically update when changing store location, while preserving existing settings during updates.

For developers, The ./i18n/locale-info.php file has been updated to include corrected weight and dimension units for specific countries:

  • United States and its territories (GU, AS, VI) now correctly use pounds (lbs) for weight and inches (in) for dimensions
  • United Kingdom entries now reflect official metric standards.

Store managers can customize units under WooCommerce > Settings > Products > Measurements.


Product Summary block, enhanced

Product Summary: making product element a main and powerful summary block #48984

Our newest version of this block now supports:

  • Text styling from Product Editor (including new line!)
  • Truncation control: Ability to turn on/off truncation
  • Ability to disable fallback to full product description

Itโ€™s compatible across various contexts, including All Products and Single Product templates, and supports languages with different word definitions, along with many more improvements.

How to use the new block:

The Product Summary block will be available in the inserter under โ€œProduct Summaryโ€ name (the same as before).

If youโ€™re adding new blocks, the new Product Summary will be already be a part of the markup for:

  • Single Product block
  • transforming Classic Single Product Template into blockified version

We donโ€™t automatically upgrade the previous block (Post Excerptโ€™s variation). If you are currently using the previous version of the Product Summary block (Post Excerptโ€™s variation), it will work as-is, however weโ€™re providing an upgrade path from the previous variation to the new Product Summary block through Inspector Controls. Just click โ€œUpgrade nowโ€ and youโ€™ll be upgraded to the new block:


More new features and updates

WC Blocks Image Filter 

Enable cart item images filtering #52310

A new filter, woocommerce_store_api_cart_item_images, allows modifying cart item images in the Cart and Checkout blocks.

Checkout the code snippet


REST API product enhancements

Weโ€™ve enhanced the WooCommerce REST API /products endpoint with new filtering parameters for more precise product queries that provide developers with greater control over product data retrieval.

See new filtering parameters

The /products endpoint now supports several new parameters that enable more granular product filtering:

Product Type Filtering
  • include_types: Specify which product types to include in the results.
  • exclude_types: Filter out specific product types from the results.
Product Status Management
  • include_status: Include products with specific status values.
  • exclude_status: Exclude products with certain status values.
Product Features
  • downloadable: Filter products based on whether they are downloadable.
  • virtual: Filter products based on whether they are virtual.

Remote Logging UI

Enable remote logging UI and mark feature as stable in FeaturesController #53649

Weโ€™re making it easier for users to manager their privacy by adding a UI control to manage the Remote Logging feature independently of usage tracking settings. This can be configured under WooCommerce > Settings > Advanced > Features.

Store API upgrades

Opt-in Checkout endpoint to rate limits. #53711

Weโ€™ve added a configurable rate-limiting system for the Store API and Checkout block to protect against card testing and denial-of-service attacks.

Start using this feature ๐Ÿ‘‡

Rate limiting can be enabled from WooCommerce > Settings > Advanced > Features.

You can expand those settings further or enable it for all Store API endpoints via following this technical guide.

Do note that if youโ€™re running your website behind a proxy or a firewall, you will need to enable the proxy mode, which will request the IP from the proxy.


First looks

Modernized Payments Settings Interface (Beta)

WooCommerce 9.6 introduces the first phase of our recently announced payments modernization initiative. You can preview the new React-based payments settings interface by enabling the reactify-classic-payments-settings feature flag in the WooCommerce Beta Tester plugin. While no immediate action is required from payment gateway developers, we encourage you to test and share your feedback on GitHub.

Email Improvements (Beta)

We are introducing two improvements to core WooCommerce emails under the Email Improvements experimental feature (WooCommerce > Settings > Advanced > Features). Emails can now inherit theme.json styles and display the logo in settings instead of the URL. Enabling this experimental feature will also allow users to view email style changes in real-time before saving settings. We expect to roll out more broadly to users in early 2025.


API Updates

  • Add: Adds an endpoint to the API Rest that allows duplicating a product and saving it as a draft. It’s also possible to update the product when extra parameters are sent. #46141
  • Fix: Updates the REST API v3 reports/orders/totals endpoint to be compatible with HPOS #46715
  • Fix: Fixes an error related to the duplicate product REST API endpoint #46551
  • Fix: Ensure that required missing fields will get validated in Store API #45840

Other important information

๐Ÿ› ๏ธ Fix Variable Products going Out of Stock

This version fixes an issue where variable products incorrectly displayed as out of stock despite having inventory, caused by corrupted product transients (wc_var_prices_ and wc_product_children_). The fix adds validation checks for these transients to ensure data integrity and prevent the issue from recurring. Special thanks to ricardoaraujo330, jdinbound, tobijafischer, youlikeitcp, vmavrikios for contributing to solve this.

Developer advisories

We have a number of developer advisories coming up as we prepare to release pre-release versions. Weโ€™ll share more detailed information in upcoming posts.


Developer advisory: Product review form template version update

The single-product-reviews.php template now includes an autocomplete attribute, enhancing accessibility by allowing browsers to autofill personal information (e.g., name, email, address). Read more.

Related PR: #51970


Block Checkout Field Entities

Field visibility settings (e.g., phone, address) in Block Checkout are now globally saved as entities for consistency across all checkout methods.

Related PR: #52784


Developer advisory:  Coming Soon Mode by default

Weโ€™re changing the default behavior for fresh installations to ensure new stores start in โ€œComing Soonโ€ mode. This change aligns with user expectations and prevents unexpected store exposure while itโ€™s still being set up.

Related PR: #53685


Changelog

View the full changelog.


Get WooCommerce 9.6

๐Ÿ‘‰ To upgrade: See our update guide or download the latest release from WordPress.org.

๐Ÿž Found a Bug? Please submit a report on GitHub.


Code Contributors

WooCommerce Core

hesahesa
jimjasson
Sidsector9
gigitux
veljkho
Lenny4
octaedro
joelclimbsthings
tomalec
kmanijak
adimoldovan
thilinah
ilyasfoo
agarciar
senadir
lanej0
akhil-webkul
nerrad
darrenjacoby
bor0
nathanss
wyatt400
tammullen
barryhughes
mcliwanow
albarin
shaybanshee
medavidallsop
wjrosa
dinhtungdu
mdperez86
samueljseay
elazzabi
prettyboymp
Aljullu
lekiq
tjcafferkey
jorgeatorres
NielsdeBlaauw
imanish003
opr
Jinksi
vladolaru
NeosinneR
joshuatf
moon0326
ntindicator
retrofox
frosso
amitraj2203
xristos3490
louwie17
mgascam
chihsuan
rawdreeg
narenin
oaratovskyi
d-alleyne
roykho
nielslange
kalessil
millerf
KokkieH
message-dimke
malinajirka
Konamiman
kkmuffme
naman03malhotra
wavvves
thealexandrelara
alex-mpoet
nirolph
alexflorisca
Manussakis
sorensd
mahfuzurwp
corsonr
psealock
coreymckrill
mordeth
cawa-93
mikejolley
andfinally
Stojdza
rjchow
dmallory42

ActionScheduler

christian-dale
barryhughes
coreymckrill
thomasjvu
albarin
nikola-wd
gosixl
crstauf

8 responses to “WooCommerce 9.6: Fresh new tools and modernizing classics”

  1. I am still getting an issue: “has been removed from your cart because it can no longer be booked”. I am running version 9.6

    1. Hi Sally, sorry to hear you’re running into this issue. That message usually appears when a product is no longer available or has booking restrictions. Could you share more details about your setup? For example, are you using Bookings or another extension? Also, do you see any related errors in your logs?

  2. Good morning Pi! Thank you for your reply! The product is available and published as a live product. No restrictions. I am running a WooCommerce compatible booking software. It happens in the cart when trying to apply a payment method (Paypal, credit card, etc.). A Booking number is created, and Order ID from WooCommerce is not created. It seems the timing and error message I mention coincides with the release of WooCommerce 9.6 on 1/20/25, where on this page under “Other important information
    ๐Ÿ› ๏ธ Fix Variable Products going Out of Stock” it mentions “products incorrectly displayed as out of stock despite having inventory”. I don’t necessarily think I see anything in my error logs. In PHP/Web Server logs – My Home โ†’ Hosting Overview, there is “”PHP Warning: Constant WP_DEBUG_DISPLAY already defined” over and over.

    1. Hey, Sally ๐Ÿ‘‹๐Ÿฝ From the error โ€œhas been removed from your cart because it can no longer be bookedโ€, it looks like the issue might be coming from the booking software.

      We haven’t seen any reports of stock issues after this fix, but I will let the team know you are encountering this issue just in case.

      I still don’t know which other booking plugin you are using, but I would reach out to those developers as well, in case there is some debugging that can be done on their end.

  3. Thank you Pi! I appreciate your continued support! Just to make sure it is not a WooCommerce/Product issue – can you take a look here at my notes about “Paypal Complete Payments” functionality to make sure a checkbox is not missing for PayPal’s new rollout?

    In WooCommerce where a booking program is part of the website and when using “PayPal Express Checkout” (deprecated), the Product/Product Data section offers a set of checkboxes at the top when PayPal Express is enabled (as follows: Virtual; No Shipping Required; Enable Sandbox Mode; Enable Express Checkout Button). In my scenario I would check off ‘Virtual’ and ‘Enable Express Checkout Button’.

    However, when PayPal Complete Payments is enabled, the only checkbox offered is the โ€˜Virtualโ€™ checkbox. Is there a checkbox that perhaps should be there with using “PayPal Complete Payments” that is missing that would solve the product not available issue ?

    [I do also have a ticket out for the booking software that I use also just to rule that out. The booking program is Yith Booking (WooComm compatible with the same Product layout at WooComm Booking). I don’t think that their plugin drives this issue. The issue has to do with Payment or functionality that allows the Product to accept/recognize payment.]

    1. Hi, Sally! It looks like you have several plugins installed which may be interfering with the site.

      I noticed you mentioned PayPal Complete Payments, which looks like it hasn’t been updated in some time. We offer a free, and regularly updated plugin, to handle PayPal payments.

      My advice would be to audit your existing plugins for conflicts. If you find that a plugin you are using hasn’t been updated or tested against the most recent versions of WordPress or WooCommerce by the plugin developers, it may be the source of issues on your site.

      If you’ve downloaded plugins from the WooCommerce Marketplace in the past, consider reaching out to our support team.

  4. Good afternoon Pi! The “PayPal Complete Payments” I use is not the one you have linked by Eric Babin; however, I do agree based on my continued troubleshooting that the one I’m using it is likely the culprit of my issue. I do think it is in synch with the most recent WooComm updates but I just can’t get the developer to reply. I am therefore trying to rule out other potential issues or determine if, for example, because of the recent issue with WooComm 9.6 that was just resolved in January, the developer of the plugin I am using needs to make an additional tweak to their program. I will continue to try to reach out to that PayPal Complete Payments provider. Thank you for all of your assistance!

    1. Sounds good, Sally. I did alert the team who released the fix in question, in case we receive any similar issues. At the moment, we haven’t had any other issues raised, but I’ll keep you in mind if that changes.

      And please let us know if you were able to get in contact with the plugin developer to resolve the issue ๐Ÿ™

Leave a Reply

Your email address will not be published. Required fields are marked *