Changelog
Check out the latest releases from the WooCommerce project.
Subscribe to all release posts via our RSS feed.
-
A new version of WooCommerce Blocks has been released! Version 4.1.0 is now available for download from GitHub and WordPress.org.
This release introduces full compatibility with WordPress 5.6, validation for Checkout block (client and server-side) and a bunch of bug fixes. Thanks again to all of you who are using the new blocks and reporting things you’d like improved!
Address Validation in Checkout
Previous versions included client side validation for checkout input, this release takes it one step further and introduced more validation in the client side, and full validation in the backend.
WordPress 5.6 Compatibility
With WordPress 5.6 out, we ensured that all of our blocks are compatible with it, fixing any deprecation notices in our way.
Changelog
Enhancements
- Add the ability to directly upload an image in Featured Category and Featured Product blocks. (3579)
- Fix coupon code button height not adapting to the font size. (3575)
- Fixed Coupon Code panel not expanding/contracting in some themes. (3569)
- Fix: Added fallback styling for screen reader text. (3557)
Bug Fixes
- Fix nonce issues when adding product to cart from All Products. (3598)
- Fix bug inside Product Search in the editor. (3578)
- Fix console warnings in WordPress 5.6. (3577)
- Fixed text visibility in select inputs when using Twenty Twenty-One theme’s dark mode. (3554)
- Fix product list images skewed in Widgets editor. (3553)
- Correctly validate fields containing white space on the checkout.
- Add address validation to values posted to the Checkout via StoreApi. (3552)
- Fix Fees not visible in Cart & Checkout blocks when order doesn’t need shipping. (3521)
compatibility
- Fix All Products block edit screen. (3547)
wp dependency
-
WooCommerce 4.9.0 is now available for beta testing! You can either download it directly from WordPress.org or install our WooCommerce Beta Tester Plugin.
What’s new?
This is a minor release focussing on bug fixes and performance improvements. Just like other minor releases, this release also aims to be backward compatible with previous WooCommerce releases.
We have also updated WooCommerce Blocks to 4.0.0 and WooCommerce Admin to 1.8.1 containing several bug fixes and enhancements.
Highlights
- WooCommerce Blocks 4.0.0: Blocks package have been updated to 4.0.0, taking it at par with the feature plugin version. Please take a look at the release post to see what’s new and improved.
- WooCommerce Admin 1.8.1: WooCommerce Admin package has also been updated to 1.8.1 with this release of WooCommerce. This new package contains lots of bug fixes and stability improvements.
- API performance improvements: WooCommerce REST API responses have been made faster by up to 4x for product and order list endpoints. To make use of increased speed, make sure to add the
_fields
parameter in the API call to specify only what you need, and WooCommerce will optimize internal SQL queries to reduce the load on the database. We are planning to expand this improvement over other endpoints as well if there are good results. #27335 - Britain and Isle of Man removed from EU VAT zones: As apart of the Brexit effort, we have removed Britain and IM from EU VAT zones but they are still part of European Union countries. If you or your client’s store deal with EU taxes, then make sure to consult your accountant as just this change might not be enough. #28538
- Stock management fixes: Fixes have been made to make stock management more robust and prevent duplicate stock reduction. Thanks to all for reporting those issues promptly and in great detail. #28620
- Product review count: An issue related to incorrect review count has also been fixed. If you were impacted by this bug, then add/remove a product review manually to correct the review count. We are also working on another fix to update the product review count retro-actively for convenience. Again, thanks to all for reporting this issue promptly and in detail. #28624
- Better coupon error messages: When coupon usage limit is reached after an incomplete or failed payment where the coupon was used, we will show better error messages. If the users are logged in, we will ask them to go to MyAccount page (if enabled) to cancel or pay for the orders and recover/utilize the coupon. #28592
Filters and actions
We have added two new actions in this release
Action Description woocommerce_variation_before_set_stock Action to signal that the value of ‘stock_quantity’ for a variation is about to change. #27558 woocommerce_product_before_set_stock Action to signal that the value of ‘stock_quantity’ for a product is about to change.#27558 list of new actions in 4.9 Database Changes
This release does not introduce any changes to the database.
Template changes
This release does not introduce any changes to templates.
Release Schedule
This version of WooCommerce is scheduled to be released as follows:
Version Release Beta December 22th, 2020 Release Candidate December 29th, 2020 4.9 Final Release January 12th, 2021 Release schedule for 4.9 Testing
As with the previous several releases, we have published testing instructions for 4.9. We’d love your help in testing this release.
If you discover any bugs during the testing process, please let us know by logging a report in GitHub.
- WooCommerce Blocks 4.0.0: Blocks package have been updated to 4.0.0, taking it at par with the feature plugin version. Please take a look at the release post to see what’s new and improved.
-
Today we have released Storefront 3.0.0. The new version can be downloaded from WordPress.org and GitHub.
The highlight of this release is the removal of our big admin notice presented to the user after the installation of the Storefront theme. This was triggered by the changes done to the WooCommerce admin home section and onboarding procedure. The old notice was interfering with the new flow and design. The documentation was updated so you can check the new onboarding location and welcome message in the Storefront and WooCommerce section. This update is available on the combination of WooCommerce 4.8+ with Storefront 3.0.0+ to preserve backwards compatibility.
Full changelog:
- Enhancement – Add missing link text on cart button in handheld footer bar #1205
- Enhancement – Move Storefront admin notice content to the Storefront Appearance page.#1544
- Fix – Implode parameters order compatibility for PHP8 #1553
- Dev – Update various dependencies, including major updates:
Download the latest release of Storefront from WordPress.org, or venture over to
Dashboard → Updates
in your WordPress admin to update your theme.As usual, if you see any issues, please log them in detail on Github.
-
We’re excited to announce that WooCommerce 4.8 is now publicly available! It has been in development since November 2020 and Core contributions include about 257 commits from 29 contributors!
This is a minor release, which means everything is backward compatible with the previous version.
Given the release of PHP8, WordPress 5.6, and the Twenty Twenty-One theme, the focus of this release is on compatibility and quality of life improvements.
As always, we recommend creating a backup of your site and making sure that themes and plugins are compatible before updating. You can check out this update guide for more information.
What’s new in 4.8?
Variations Report
This new report grants merchants insight into the sales of individual product variations. (#5167)
Homescreen Layouts
Merchants may now choose between two different layouts for the homescreen. (#5429)
Notable Fixes & Improvements
There are many fixes and stability improvements in this release:
- Limited the status page’s warning for untested extensions to major releases. (#28114)
- Added support for the Twenty Twenty-One theme. (#28134)
- Reduced the memory usage of AJAX product search. (#28177)
- Added shipping, tax, and fee lines to refund REST API responses. (#28241)
You can find the complete changelog for this release in the changelog.txt file.
Database Changes
This release does not introduce any changes to the database.
Template Changes
This release does not introduce any changes to template files.
Filters and actions
We have added one new filter:
Filters Description woocommerce_product_has_options
Determine if the product has options for the user to configure. Much 💜 to all the contributors
Finally a big thanks to everyone in the community who has contributed via issue reports, fixes, translation, testing, supporting other users or simply spreading the word.
WooCommerce core
jonathansadowski ObliviousHarmony vedanshujain rodrigoprimo Konamiman roykho claudiosanches kloon rrennick tammullen aheckler bordoni szepeviktor timmyc tyrann0us pjv OlegApanovich zzap nerrad mathiasdb peterfabian jeffikus CHEWX WooCommerce Admin
psealock joshuatf jeffstieler louwie17 becdetat moon0326 samueljseay octaedro mattsherman joelclimbsthings adrianduffell timmyc ilyasfoo elizaan36 vbelolapotkov tomalec chickenn00dle dechov Aljullu WooCommerce Blocks
Aljullu nerrad mikejolley opr senadir budzanowski haszari ettoredn Action Scheduler
Konamiman roykho
-
A new version of WooCommerce Blocks has been released! Version 4.0.0 is now available for download from GitHub and WordPress.org.
This release includes some fixes for the Cart and Checkout blocks, and the Store API which powers them. Thanks again to all of you who are using the new blocks and reporting things you’d like improved!
We’re actively working on addressing issues and also integrating more extensions; some of the more technical changes in this release are there to support these efforts.
Changes to Order Processing within the Checkout Block
Some of the largest changes in this release are behind the scenes in the Store API. We made some changes so that the order in which data is processed on the checkout endpoint is done in a more logical order, so that orders are not left with the wrong state if Checkout is aborted.
The new order of events is as follows:
- Obtain Draft Order
- Process Request
- Process Customer
- Validate Order
- Process Payment
Whilst these changes should not impact developers, they should make our Checkout endpoint more robust. For example, if an item is out of stock, a pending order will no longer be created.
User Creation During Checkout
Along the same lines as the issue above, we found some flaws in the customer creation logic during Checkout, specifically with the security “nonce”. When a user is logged in, these change, which would mean follow up API requests would fail with an error.
To resolve this, we now return an updated
nonce
along with the error response, and ensure that when a customer account is created, the Checkout state is updated to reflect this (for example, the create account checkbox is hidden).Changelog
Enhancements
- Dev: Change register_endpoint_data to use an array of params instead of individual params. (3478)
- Dev: Expose store/cart via ExtendRestApi to extensions. (3445)
- Dev: Added formatting classes to the Store API for extensions to consume.
Bug Fixes
- Checkout Block: Prevent
Create an account
from creating up a user account if the order fails coupon validation. (3423) - Make sure cart is initialized before the CartItems route is used in the Store API. (3488)
- Fix notice close button color in Twenty Twenty One dark mode. (3472)
- Remove held stock for a draft order if an item is removed from the cart. (3468)
- Ensure correct alignment of Checkout notice’s dismiss button. (3455)
- Fixed a bug in Checkout Block (Store API) causing Checkout to fail when using an invalid coupon and creating an account.
- Checkout Block: Correctly handle cases where the order fails with an error (e.g. invalid coupon) and a new user account is created. (3429)
- Dev: Refactored and reordered Store API Checkout processing to handle various edge cases and better support future extensibility. (3454)
-
We’ve got a second release candidate for you today! We are still on track for our planned December 8th release date.
Changes
This release candidate includes additional fixes for the Twenty Twenty-One theme.
Testing
If you’d like to dive in and help test this new release, our handy WooCommerce Beta Tester plugin allows you to switch between beta versions and release candidates. You can also download the release from wordpress.org.
A set of testing instructions has been published on our Wiki page in GitHub. We’ve also posted a helpful writeup on beta testing to help get you started.
If you discover any bugs during the testing process, please let us know by logging a report in GitHub.
Thanks to all of our testers and contributors!
-
A new version of WooCommerce Blocks has been released! Version 3.9.0 is now available for download from GitHub and WordPress.org.
This release includes a number of fixes for the Cart and Checkout blocks. Thanks again to all of you who are using the new blocks and reporting things you’d like improved! We’re actively working on addressing issues and also integrating more extensions.
There are three changes in particular to highlight:
Fix broken Express Payment method in Cart
We discovered a bug with the functionality of the express payment methods in the Cart (Chrome/Google Pay, Apple Pay). Note – this did not affect their usage in the Checkout.
With the bug, a shopper could initiate the express payment process from the Cart, but completing it would result in an error in the express payment method modal. No payment would be collected, and no order would be created.
With this fix, express payment methods used from the Cart now work as expected.
Cart and checkout now respect the global “Hide shipping costs until an address is entered” setting
In the cart and checkout blocks there were some discrepancies that could exist because the block level setting for hiding shipping costs until an address is entered was disconnected from the global setting.
Unfortunately, due to the way the global setting is coupled to a large amount of logic in WooCommerce core we had to remove the local block level setting and switch to always using the global setting.
This fixes a number of bugs related to calculating totals and what was displayed to the shopper for shipping costs.
It is our intent to move the settings to be more in context with what they affect, but in this case, there’s some changes needed more holistically in WooCommerce core before we can do so.
Change to payment methods registration interface
There has been change to the payment method interface for registering payment methods for use in the checkout block.
Previously these APIs received a callback creator function, for example:
const bankTransferPaymentMethod = { name: PAYMENT_METHOD_NAME, label: <Label />, content: <Content />, edit: <Content />, icons: null, canMakePayment: () => true, ariaLabel: label, }; // Old interface registerPaymentMethod( ( Config ) => new Config( bankTransferPaymentMethod ) );
The new interface simply receives the options object:
// New interface registerPaymentMethod( bankTransferPaymentMethod );
This is a backward compatible change (
registerPaymentMethod
will still accept and work with both types of arguments) but you will see a deprecated warning for implementation with the old argument type. If you’ve integrated payment methods with the blocks, please do switch to the new interface when you’re able, we don’t anticipate doing a hard deprecation for a while yet (and will give plenty of heads up if/when we do).Changelog
Enhancements
- Expose
discount_type
in Store API coupon endpoints. (3399) - Exclude checkout-draft orders from WC Admin reports and My Account > Orders. (3379)
Bugfixes
- Hide spinner on cart block’s “Proceed to Checkout” link when page unloads. (3436)
- Fixed express payment methods processing not completing when Stripe payment method active. (3432)
- Refresh PaymentRequest after cancelling payment to prevent addresses remaining populated on repeat attempts. (3430)
- Ensure “Add a note to your order” section is styled correctly when disabled. (3427)
- Prevent checkout step heading text overlapping actual heading on small viewports. (3425)
- Improve Stripe payment request API payment method availability. (3424)
- Stop hidden products from being linked in cart and checkout blocks. (3415)
- Show Express Payment Method Error Notices after Payment Failure. (3410)
- Fix cart block
isLarge
console error in the editor when running WordPress 5.6 beta. (3408) - Fix: Orders not being placed when paying with an Express payment method from the Cart block. (3403)
- Fix incorrect usage of static method in Stripe payment method integration. (3400)
- Cart and checkout should respect the global “Hide shipping costs until an address is entered” setting. (3383)
- Sync shipping address with billing address when shipping address fields are disabled. This fixes a bug where taxes would not reflect changes in billing address when they are set to be calculated from billing address (3358)
Refactor
Support a plain js configuration argument to payment method registration APIs. (3404)
- Expose
-
We’re very excited to announce that the release candidate is now available! We are on track for our planned December 8th release date!
Changes
This release candidate includes some fixes in WooCommerce Admin as well as support for the Twenty Twenty-One Theme.
Testing
If you’d like to dive in and help test this new release, our handy WooCommerce Beta Tester plugin allows you to switch between beta versions and release candidates. You can also download the release from wordpress.org.
A set of testing instructions has been published on our Wiki page in GitHub. We’ve also posted a helpful writeup on beta testing to help get you started.
If you discover any bugs during the testing process, please let us know by logging a report in GitHub.
Thanks to all of our testers and contributors!
-
This release introduces several small compatibility improvements and fixes for taxonomy templates changed in WooCommerce 4.7. Also, based on user feedback, we decided to introduce a fix to prevent variations without attributes from being added to the cart that was originally planned for 4.8.0.
Here is the WooCommerce 4.7.1 changelog:
- Prevent variable product to be added to cart until a valid variation is selected first. #28103
- Restored support for custom
taxonomy-product_cat-<SLUG>.php
andtaxonomy-product_tag-<SLUG>.php
templates. #28377 - Display overrides of
taxonomy-product_<cat|tag>.php
andcontent-product_cat.php
templates in Status page. #28378 - Apply
woocommerce_cart_needs_payment
filter inWC_Checkout::process_checkout()
to make backwards compatible. #28281
Thanks to everyone for reporting these issues promptly and helping out with the fix release.
You can download the latest release of WooCommerce here or visit Dashboard → Updates to update the plugin from your WordPress admin screen.
As usual, if you spot issues in WooCommerce core, please log them in detail on GitHub. Found a security issue? Please submit a report via HackerOne.
-
WooCommerce 4.8.0 is now available for beta testing! You can either download it directly from WordPress.org or install our WooCommerce Beta Tester Plugin.
What’s new?
The WooCommerce 4.8 release contains an updated version of WooCommerce Admin 1.7.0, WooCommerce Blocks 3.8.0, several fixes, and localization improvements.
Notable fixes and improvements
The main fixes and stability improvements in this release are:
- New product variations report. (#5167)
- Limited the system status report’s “not tested with version” warning to major versions. (#28114)
- Reduced the memory usage of AJAX product searches. (#28177)
- Add shipping, tax, and fee lines to refund REST API response. (#28241)
You can review the complete changelog for this release on the readme.txt file.
Filters and actions
We have added one new filter:
Filters Description woocommerce_product_has_options
Determine if the product has options for the user to configure. Database changes
This release does not introduce any changes to the database.
Template changes
This release does not introduce any changes to templates.
Release Schedule
This version of WooCommerce is scheduled to be released as follows:
Version Release Beta November 17th, 2020 Release Candidate November 24th, 2020 4.8 Final Release December 8th, 2020 Testing
As with the previous several releases, we have published testing instructions for 4.8. We’d love your help in testing this release.
If you discover any bugs during the testing process, please let us know by logging a report in GitHub.