Changelog

  • We’re excited to announce that WooCommerce 5.3 is now released. This is the fourth minor release of 2021 and has

    1. 352 commits from 30 contributors in WooCommerce Core.
    2. 145 commits from 29 contributors in the WooCommerce Admin package.
    3. 59 commits from 12 contributors in the WooCommerce Gutenberg Products Block package.

    This is a minor release, which means everything is backward compatible with the previous version.

    As always, we recommend creating a backup of your site and making sure that the themes and plugins are compatible before updating. You can check out this update guide for more information.

    What’s new in 5.3?

    1. WooCommerce Blocks 4.9.1: Blocks package has been updated to 4.9.1. Please take a look at the release posts for 4.8.0, 4.9.0, and 4.9.1 to see what’s new and improved.
    2. WooCommerce Admin 2.2.6: WooCommerce Admin package has also been updated to 2.2.6 with this release of WooCommerce. This new package contains lots of bug fixes and stability improvements. The list of changes in the versions of WooCommerce Admin included since WooCommerce 5.2 can be found here.

    You can find the complete changelog for this release in the changelog.txt file.

    Filters and actions

    This release has one new and one updated filter.

    New Filter

    FilterDescription
    woocommerce_cart_product_not_enough_stock_already_in_cart_messageFilters message about product not having enough stock accounting for what’s already in the cart. #29304

    Updated Filter

    FilterDescription
    woocommerce_logger_log_messageAdded the ability to specify a handler object, such as WC_Log_Handler_File. #29572

    Database changes

    This release does not introduce any database changes.

    Template changes

    This release does not introduce any changes to templates.

    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

    roykho rrennick jonathansadowski Konamiman veljkho zhongruige
    roykho rrennick jonathansadowski Konamiman veljkho zhongruige
    joshuatf vedanshujain barryhughes claudiosanches bgrgicak ObliviousHarmony
    joshuatf vedanshujain barryhughes claudiosanches bgrgicak ObliviousHarmony
    gracie WPprodigy Aljullu tammullen
    gracie WPprodigy Aljullu tammullen

    WooCommerce Admin

    louwie17 samueljseay jeffstieler joshuatf octaedro psealock
    louwie17 samueljseay jeffstieler joshuatf octaedro psealock
    hsingyuc moon0326 tomalec ilyasfoo becdetat adrianduffell
    hsingyuc moon0326 tomalec ilyasfoo becdetat adrianduffell
    timmyc Aljullu joelclimbsthings jonathansadowski xristos3490 NeosinneR
    timmyc Aljullu joelclimbsthings jonathansadowski xristos3490 NeosinneR
    rrennick mikkamp waclawjacek ismaeldcom
    rrennick mikkamp waclawjacek ismaeldcom

    WooCommerce Blocks

    opr mikejolley senadir nerrad ralucaStan Aljullu
    opr mikejolley senadir nerrad ralucaStan Aljullu

  • There’s a new version of WooCommerce Blocks available! Version 5.1.0 is now available on WordPress.org and GitHub.

    This release includes better error reporting for incorrectly registered payment methods and some improvements to the emitEventWithAbort event emitter. There is also a bug fix related to email and phone field values being cleared unexpectedly with certain shopper behaviour. Read on for more details!

    Better error reporting for incorrectly registered payment methods.

    When a payment method registers using the payment methods extensibility interface, the feature plugin has some error checking to ensure that the dependencies the plugin lists for its script are actually available during the registration. Without this error check, it’s possible for incorrectly registered payment methods to prevent the loading of any checkout scripts due to the mechanism used internally for managing the loading order of various checkout scripts.

    With this release, there are some improvements to the error message logged (PHP error logs and console log) when a payment method doesn’t have all its dependencies registered including:

    • Clarifying this is specific to Cart and Checkout blocks loading process.
    • Only loading the payment methods API interface when Cart and Checkout blocks feature is on (via the feature plugin).

    Improvements to emitEventWithAbort

    This is more of a internals update that impacts various event emitters using this function (onPaymentProcessing, onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError). If you are a developer authoring a payment method that uses any of these events, your implementation should be unaffected by these changes. It’s mostly to prevent potential bugs where there are multiple payment methods in use by a store (that all implement observers for these events). You can read more about the change in this pr.

    Fix for unexpected email and phone field value loss.

    There was a bug that surfaced when shoppers filled out the email and phone field and then unchecked the “Use same address for billing” option. The email and phone values would be cleared.

    This is fixed in this release so that any previously entered values are preserved when toggling this checkbox.

    Changelog

    Enhancements

    • Improve error message displayed when a payment method didn’t have all its dependencies registered. (4176)
    • Improvements to emitEventWithAbort. (4158)

    Bug Fixes

    • Fix issue in which email and phone fields are cleared when using a separate billing address. (4162)


  • We’re excited to announce that the second release candidate is now available. We are on track for our planned May 11th release date.

    Note that this is a minor release focusing on bug fixes and performance improvements.

    Changes

    • WooCommerce Admin has been updated to version 2.2.2. #29791
    • Fixes an issue where the continue button remained enabled in the store setup wizard after it had already been pressed. #6838
    • Adds some tweaks to the store setup wizard based on the country in which the store is located. #6901

    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.


  • There’s a new version of WooCommerce Blocks available! Version 5.0.0 is now available on WordPress.org and GitHub.

    This release mostly contains behind the scenes refactors (as we gradually convert the JavaScript code to TypeScript), but also adds support for Batching in the StoreAPI, and fixes a visual bug with customer addresses on the cart page.

    Dev Notes

    Class Deprecations

    Two internal classes (Automattic\WooCommerce\Blocks\Assets and Library) have been deprecated in this release, with functionality being moved to AssetsController and BlockTypesController.

    Since these were internal bootstrap classes we don’t anticipate any external usage, but noting that these classes will be removed in a future release of Blocks.

    Checkout Event Changes

    The Checkout event onCheckoutBeforeProcessing has been renamed to onCheckoutValidationBeforeProcessing to more clearly articulate its coupling to the validation happening when the Checkout form is submitted. 

    onCheckoutBeforeProcessing will be deprecated formally in the future.

    Shared Settings Deprecation

    Blocks offered a filter hook named woocommerce_shared_settings which could be used to change, add, or remove settings that are passed from the server to the client. This is now considered deprecated—a warning will be logged to the browser error console if used.

    We recommend instead using the Asset Data Registry directly, so for example:

    use Automattic\WooCommerce\Blocks\Package;
    use Automattic\WooCommerce\Blocks\Assets\AssetDataRegistry;
    Package::container()->get( AssetDataRegistry::class )->add( $key, $value )

    Doing this reduces the risk of conflicting or overwriting data, unlike the filter which allowed any setting to be modified leading to unintentional side effects.

    Changelog

    Enhancements

    • Added support to the Store API for batching requests. This allows multiple POST requests to be made at once to reduce the number of separate requests being made to the API. (4075)

    Bug Fixes

    • Prevent parts of old addresses being displayed in the shipping calculator when changing countries. (4038)

    Refactor

    • Rename onCheckoutBeforeProcessing to onCheckoutValidationBeforeProcessing.
    • Switched to rest_preload_api_request for API hydration in cart and checkout blocks. (4090)
    • Introduced AssetsController and BlockTypesController classes (which replace Assets.php and Library.php). (4094)
    • Replaced usage of the woocommerce_shared_settings hook. This will be deprecated. (4092)

  • We’re excited to announce that the release candidate is now available. We are on track for our planned May 11th release date.

    Note that this is a minor release focusing on bug fixes and performance improvements.

    Changes

    • We’ve updated the default currency for stores to USD to match the change that was included in 5.3 to change the default location of the store to California, US. #29752

    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.


  • Beta 1 for the May release of WooCommerce is now available for 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 focusing on bug fixes and performance improvements. Just like other minor releases, this release also aims to be backward compatible with previous WooCommerce releases.

    Highlights

    1. WooCommerce Blocks 4.9.1: Blocks packages have been updated to 4.9.1. Please take a look at the release posts for 4.8.0, 4.9.0, and 4.9.1 to see what’s new and improved.
    2. WooCommerce Admin 2.2.1: The WooCommerce Admin package has also been updated to 2.2.1 with this release of WooCommerce. This new package contains lots of bug fixes and stability improvements.

    These are just some of the changes that are included in WooCommerce 5.3 Beta 1. You can view the entire list of included changes in the readme.

    Filters and actions

    This release has one new and one updated filter.

    New Filter

    FilterDescription
    woocommerce_cart_product_not_enough_stock_already_in_cart_messageFilters message about product not having enough stock accounting for what’s already in the cart. #29304

    Updated Filter

    FilterDescription
    woocommerce_logger_log_messageAdded the ability to specify a handler object, such as WC_Log_Handler_File. #29572

    Database changes

    This release does not introduce any database changes.

    Template changes

    This release does not introduce any template changes.

    Release schedule

    This version of WooCommerce is scheduled to be released as follows:

    VersionRelease
    BetaApril 20, 2021
    Release CandidateApril 27, 2021
    5.3 Final ReleaseMay 11, 2021
    Release schedule for 5.3

    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.


  • This release fixes a bug that prevented granting download permissions from the order details page (clicking the “Grant access” button caused the UI to hang on a neverending spinner, since the request had actually failed with a 500 status code).

    Changelog

    This release contains only one change:

    • Fix: can’t grant permission to downloadable product from order. #29691

    Thanks to everyone for reporting this issue 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.


  • This release updates the WooCommerce Blocks package to version 4.7.2, which fixes an issue that appears when trying to use the Elementor plugin in PHP 8 (a Fatal error: Uncaught TypeError: array_diff() is thrown; in PHP 7 this appears as just a warning). This error is caused by a change introduced in Blocks 4.7.0 which assumes that the $wp_scripts global is never going to change, but in fact Elementor replaces it.

    Additionally, some changes that were meant to be included in WooCommerce 5.3.0 had accidentally been included in 5.2.0; these are excluded from the 5.2.1 release.

    Changelog

    This release contains these changes:

    • Update WooCommerce Blocks version to 4.7.2. #29660
    • Remove some changes that were intended to be included in WooCommerce 5.3.0 (none of these had been included in the changelog for 5.2.0).

    Thanks to everyone for reporting this issue 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.


  • There’s a new version of WooCommerce Blocks! Version 4.9.1 is now available on WordPress.org and GitHub.

    This release includes some additional guards when entering Elementor Editor in a PHP 8.0 website, and such, it only effects websites in an environment with those conditions.

    A similar update will be shipped in WooCommerce 5.2.1


  • We’re excited to announce that WooCommerce 5.2 is now released! This is the third minor release of 2021 and has

    1. 456 commits from 27 contributors in WooCommerce core.
    2. 109 commits from 25 contributors in the WooCommerce Admin package.
    3. 148 commits from 15 contributors in the WooCommerce Gutenberg Products Block package.

    This is a minor release, which means everything is backward compatible with the previous version.

    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 5.2?

    1. WooCommerce Blocks 4.7: Blocks package has been updated to 4.7. Please take a look at the release posts for 4.7, 4.6, 4.5.2 and 4.5.1 to see what’s new and improved.
    2. WooCommerce Admin 2.1.5: WooCommerce Admin package has also been updated to 2.1.5 with this release of WooCommerce. This new package contains lots of bug fixes and stability improvements. Changes (also for the intermediate versions up to 2.0.3) can be found here (for 2.1.5 itself, the changes are some tweaks on the store setup wizard based on the country where the shop is located).

    Notable fixes and improvements

    1. Fix for the country code verification on checkout: WooCommerce 5.1 introduced an extra check so that it’s not possible to perform a successful checkout when submitting an invalid country code, but that introduced a bug that caused a ” is not a valid country error in some circumstances, for example when using PayPal checkout. Fixed in #29606.
    2. Low stock threshold for variations: The stock amount that triggers a low stock warning email can now be properly configured for individual variations on variable products. #29345
    3. Dropdowns fix: With the updated version of jQuery on the newest WordPress some dropdowns (e.g. product attributes filter) became unusable, it’s fixed now. #29397
    4. Product categories widget item count fix: The items count in the product categories widget item count not always showing the correct number, it’s fixed now. Also, a new hook has been added to disable the recounting of items. #29281
    5. New shop setup widget: A new “WooCommerce Setup” widget is added to promote users to finish the onboarding tasks, it shows only when there are unfinished tasks. #29174
    6. Updated net sales link: The “net sales” link in the dashboard now points to the new analytics screen when WooCommerce Admin is enabled. #29149
    7. Improved handling of downloadable file paths: Strip /// sequences in downloadable file paths to prevent access to absolute paths. #28699
    8. REST API: Add support for “order” and “class” types for shipping method zones: The shipping method zone endpoint wasn’t accepting settings of these types, it’s fixed now. #29218
    9. REST API: Fix wrong taxonomy caching in term and product attributes controllers: The taxonomy from the first request was being reused in further requests when those were performed programmatically. #29115
    10. REST API: Make the refunds creation endpoint accept input as documented: The input for the endpoint accepts now the input as described in the documentation (no breaking changes introduced). #29099

    You can find the complete changelog for this release in the changelog.txt file.

    Filters and actions

    We have added two new filters in this release.

    FilterDescription
    woocommerce_product_recount_termsFilter to allow/prevent recounting of terms as it could be expensive, e.g. when bulk importing products. #29281
    woocommerce_ajax_order_items_removed Action that fires after order items are removed. #29241
    5.2 new filter hooks

    Database Changes

    This release does not introduce any database changes.

    Template changes

    This release does not introduce any changes to templates.

    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

    claudiosanches zhongruige roykho rrennick vedanshujain barryhughes
    claudiosanches zhongruige roykho rrennick vedanshujain barryhughes
    Konamiman tammullen louwie17 peterfabian artpi mikejolley
    Konamiman tammullen louwie17 peterfabian artpi mikejolley
    veljkho chickenn00dle moon0326 mattsherman ObliviousHarmony jonathansadowski
    veljkho chickenn00dle moon0326 mattsherman ObliviousHarmony jonathansadowski
    psealock Marcuzz octaedro nielslange
    psealock Marcuzz octaedro nielslange

    WooCommerce Admin

    joshuatf samueljseay psealock hsingyuc louwie17 adrianduffell
    joshuatf samueljseay psealock hsingyuc louwie17 adrianduffell
    becdetat joelclimbsthings elizaan36 octaedro timmyc szepeviktor
    becdetat joelclimbsthings elizaan36 octaedro timmyc szepeviktor
    chickenn00dle ilyasfoo LevinMedia jorgeatorres tomalec ribaricplusplus
    chickenn00dle ilyasfoo LevinMedia jorgeatorres tomalec ribaricplusplus
    mattsherman nerrad moon0326
    mattsherman nerrad moon0326

    WooCommerce Blocks

    opr mikejolley Aljullu nerrad senadir ralucaStan
    opr mikejolley Aljullu nerrad senadir ralucaStan
    budzanowski
    budzanowski

    Action Scheduler

    barryhughes claudiosanches
    barryhughes claudiosanches