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

    This release includes a fix for an issue that was preventing completing checkout using saved payment methods in some circumstances. This was a regression introduced in the last version of WC Blocks and it was only affecting payment methods that had been saved directly from the My Account page, all other payment methods, including the ones saved directly in the payment process weren’t affected.

    Changelog

    • Fix an error that was blocking checkout with some user saved payment methods. (3627)

  • Today we released Storefront 3.1.0. The new version can be downloaded from WordPress.org and GitHub.

    This release contains a compatibility fix for users who choose to disable the new WooCommerce admin interface, and some general improvements which improve coding standards and remove unused/legacy code.

    Changelog

    • Fix – Prevent a fatal error on activation if WooCommerce Admin is intentionally disabled.
    • Fix – Removed legacy code targeting unsupported versions of WooCommerce. Storefront currently supports 4.2+.
    • Dev – Update stylelint to use stylelint-config-wordpress\scss config and refactor SCSS files to follow WordPress CSS coding standards.
    • Dev – Updated engines in package.json.
    • Dev – Fixed PHP linting warnings.

    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 are excited to announce that first release candidate is now available for WooCommerce 4.9! We are on track for our planned January 12th release date.

    Changes

    This release candidate includes some minor fixes in WooCommerce Admin and a compatibility fix for PHP8.

    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!


  • We released a new version of WooCommerce Additional Variation Images, this version packs some changes to the behavior, if you’re writing code that integrates with this plugin, read along.

    The 1.8.0 fix release changes the way in which Additional Variation Images galleries are shown on product pages. This has resulted in a change to some of the jQuery event triggers available previously.

    In the old version, when a variation was chosen on a products page, an Ajax event would be fired to find variation images, and then these images would be injected into the existing product gallery. The images that were there previously were removed and stored in memory—events were fired based on this ‘swapping’ of images.

    The problem with this approach we found was that:

    • After swapping images, the gallery could fail to re-initialise.
    • Some scripts used in the gallery (Flexslider) would break if re-initialised on the same parent element.
    • Restoring the original gallery was overly complex due to the differences and complexities between the original gallery HTML on page load, and the HTML after Flexslider has initialised.

    To avoid these issues, the new version does not manipulate gallery HTML, re-initialise components, or attempt to swap images. Instead, the HTML for a new gallery is inserted into the page, initialised once, and the old gallery is hidden from view (not removed from the page).

    As well as fixing the original problem, there are some other side benefits to this approach including reduced complexity (no HTML needs to be directly manipulated), and no need to load the same variation images multiple times if variations are de-selected then re-selected; all galleries remain hidden on the page.

    Developers need to be aware that as a result of these changes, some of the event triggers have been removed since they are no longer relevant. These include:

    • wc_additional_variation_images_frontend_on_reset
    • wc_additional_variation_images_frontend_on_reset_done
    • wc_additional_variation_images_frontend_image_swap_callback
    • wc_additional_variation_images_frontend_image_swap_done_callback
    • wc_additional_variation_images_frontend_ajax_default_image_swap_callback
    • wc_additional_variation_images_frontend_ajax_default_image_swap_done_callback
    • wc_additional_variation_images_frontend_reset_variation
    • wc_additional_variation_images_frontend_ajax_response_callback

    The following events are still triggered in the new version:

    • wc_additional_variation_images_frontend_lightbox
    • wc_additional_variation_images_frontend_lightbox_done
    • wc_additional_variation_images_frontend_before_show_variation
    • wc_additional_variation_images_frontend_init

    However, please note that these events were previously passed:

    • the gallery div class name
    • the main images div class name
    • the original gallery HTML
    • the original main images HTML

    Since the gallery HTML is no longer manipulated, these values are no longer passed to the events.

    To predict the impact of these changes we searched across https://wpdirectory.net/ and found no usage in plugins or themes of these events. GitHub revealed only a few instances of usage in themes, however, we noticed that these themes were also manipulating gallery HTML which is broken anyway, so since these events are no longer fired, the impact should be negligible.


  • 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

    • Bumped the minimum WP required version to 5.4. (3537)
    • Removed compatibility with packages in WordPress 5.3. (3541)

  • 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

    1. 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.
    2. 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.
    3. 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
    4. 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
    5. 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
    6. 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
    7. 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

    ActionDescription
    woocommerce_variation_before_set_stockAction to signal that the value of ‘stock_quantity’ for a variation is about to change. #27558
    woocommerce_product_before_set_stockAction 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:

    VersionRelease
    BetaDecember 22th, 2020
    Release CandidateDecember 29th, 2020
    4.9 Final ReleaseJanuary 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.


  • 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:
      • @wordpress/env to v2 #1459
      • autoprefixer to v10.0.4 #1548
      • puppeteer to v5 #1410
      • grunt-contrib-uglify to v5 #1426
      • bourbon to v7 #1388

    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

    Example of the variation 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:

    FiltersDescription
    woocommerce_product_has_optionsDetermine 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, fixestranslation, testing, supporting other users or simply spreading the word.

    WooCommerce core

    jonathansadowski ObliviousHarmony vedanshujain rodrigoprimo Konamiman roykho
    jonathansadowski ObliviousHarmony vedanshujain rodrigoprimo Konamiman roykho
    claudiosanches kloon rrennick tammullen aheckler bordoni
    claudiosanches kloon rrennick tammullen aheckler bordoni
    szepeviktor timmyc tyrann0us pjv OlegApanovich zzap
    szepeviktor timmyc tyrann0us pjv OlegApanovich zzap
    nerrad mathiasdb peterfabian jeffikus CHEWX
    nerrad mathiasdb peterfabian jeffikus CHEWX

    WooCommerce Admin

    psealock joshuatf jeffstieler louwie17 becdetat moon0326
    psealock joshuatf jeffstieler louwie17 becdetat moon0326
    samueljseay octaedro mattsherman joelclimbsthings adrianduffell timmyc
    samueljseay octaedro mattsherman joelclimbsthings adrianduffell timmyc
    ilyasfoo elizaan36 vbelolapotkov tomalec chickenn00dle dechov
    ilyasfoo elizaan36 vbelolapotkov tomalec chickenn00dle dechov
    Aljullu
    Aljullu

    WooCommerce Blocks

    Aljullu nerrad mikejolley opr senadir budzanowski
    Aljullu nerrad mikejolley opr senadir budzanowski
    haszari ettoredn
    haszari ettoredn

    Action Scheduler

    Konamiman roykho
    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:

    1. Obtain Draft Order
    2. Process Request
    3. Process Customer
    4. Validate Order
    5. 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!