• 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)


  • 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 and taxonomy-product_tag-<SLUG>.php templates. #28377
    • Display overrides of taxonomy-product_<cat|tag>.php and content-product_cat.php templates in Status page. #28378
    • Apply woocommerce_cart_needs_payment filter in WC_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:

    FiltersDescription
    woocommerce_product_has_optionsDetermine 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:

    VersionRelease
    BetaNovember 17th, 2020
    Release CandidateNovember 24th, 2020
    4.8 Final ReleaseDecember 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.


  • A new version of WooCommerce Blocks has been released! Version 3.8.0 is available for download from GitHub and WordPress.org. This version will also be available in the upcoming WooCommerce 4.8 release.

    Bug Fix

    This release fixes a bug where the Phone field missing from the checkout page when shipping was not configured.

    For Developers

    Documentation was updated to include a new document describing feature flags and experimental interfaces: feature-flags-and-experimental-interfaces.md.

    We have updated our webpack config to be more compatible with Beanstalk deployment (3360)

    Changelog:

    • Show the phone number field in the billing section when shipping is disabled in settings. (3376)
    • Add new doc referencing feature flags and experimental interfaces. (3348)
    • Change delimiter used for spltChunks from tilde to hyphens (3360)


  • We are excited to announce that WooCommerce 4.7 is now publicly available! It has been in development since October 2020 and has been updated with 393 commits from 22 contributors.

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

    Black Friday is coming up and we’re keeping this release small, focusing on stability and compatibility, with most of the updates being fixes.

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

    The WooCommerce 4.7 release contains updated versions of WooCommerce Admin (1.6.3) and WooCommerce Blocks (3.5.0 & 3.6.0), fixes, and localization improvements.

    Notable fixes and improvements

    1. Updated product_cat/tag taxonomy template file names to product-cat, and product-tag. (#27736).
    2. Excluded draft pages from the “Shop page” setting. (#27890).

    You can review the complete changelog for this release on the changelog.txt file.

    Filters and actions

    We have added one new filter:

    FiltersDescription
    woocommerce_should_send_low_stock_notificationDetermine if the current product should trigger a low stock notification..

    Database changes

    This release does not introduce any changes to the database.

    Template changes

    Several files were added or updated in this release, including:

    FileDescription
    content-product-cat.phpNew file introduced by #27736 to replace content-product_cat.php
    taxonomy-product-cat.phpNew file introduced by #27736 to replace taxonomy-product_cat.php
    taxonomy-product-tag.phpNew file introduced by #27736 to replace taxonomy-product_tag.php

    Note that content-product_cat.php, taxonomy-product_cat.php, and taxonomy-product_tag.php are still supported by WooCommerce.

    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

    claudiosanches rodrigoprimo rrennick Konamiman shiki roykho
    claudiosanches rodrigoprimo rrennick Konamiman shiki roykho
    ObliviousHarmony haszari vedanshujain juliaamosova timmyc dominic-ks
    ObliviousHarmony haszari vedanshujain juliaamosova timmyc dominic-ks
    peterfabian tammullen james-allan sudoshreyansh Knyazevich Luminus
    peterfabian tammullen james-allan sudoshreyansh Knyazevich Luminus
    Rowayda-Khayri Aljullu NicholasMacedo pjv jondcampbell kloon
    Rowayda-Khayri Aljullu NicholasMacedo pjv jondcampbell kloon
    om4james jozeflambrecht ibonkonesa
    om4james jozeflambrecht ibonkonesa

    WooCommerce Admin

    joshuatf becdetat psealock joelclimbsthings octaedro timmyc
    joshuatf becdetat psealock joelclimbsthings octaedro timmyc
    samueljseay jeffstieler ecgan moon0326 adrianduffell dechov
    samueljseay jeffstieler ecgan moon0326 adrianduffell dechov
    mattsherman zzap rtpHarry rrennick
    mattsherman zzap rtpHarry rrennick

    WooCommerce Blocks

    nerrad Aljullu senadir budzanowski haszari mikejolley
    nerrad Aljullu senadir budzanowski haszari mikejolley
    kloon corsonr farookibrahim
    kloon corsonr farookibrahim

    Action Scheduler

    rrennick
    rrennick

  • Today we released Storefront 2.9.0 with support for PHP 8 and WP 5.6! The new version can be downloaded from WordPress.org and GitHub.

    As of this release, all CSS files included in Storefront are minified which improves the load times of your store’s user-facing pages. We also included custom styles for the Filter Products by Price block so it honors the accent color of your store:

    https://user-images.githubusercontent.com/3616980/96615478-99bb0e00-1301-11eb-90ad-bcf7af565730.gif
    Animation showing the color picker in the customizer changing the price slider color

    Here is the full changelog:

    • Enhancement – Added styles to the Filter Products by Price block, so the accent color is used in the slider. #1508
    • Performance – Added CSS minification. #1503
    • Fix – Cover block text color attributes not being applied. #1513
    • Fix – Inconsistent font sizes of category and product titles in shop page. #1501
    • Dev – Update various dependencies, including major updates:
      • autoprefixer v10 and postcss v8 #1502
      • grunt-contrib-jshint v3 #1507
      • node-sass v5 #1523

    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.


  • A patch version of WooCommerce Blocks has been released. Version 3.7.1 is available for download from GitHub and WordPress.org.

    This release fixes an issue with the signup feature in the Checkout block. The API now only creates an account if the relevant store option is enabled ( Account Creation > Allow customers to create an account during checkout`).


  • This release fixes a bug discovered recently that allows anonymous users to create an account during checkout even when the “Allow customers to create an account during checkout” setting is disabled. The fix to this bug can be found here.

    We found this problem while investigating reports of a bot that is creating spam orders in some WooCommerce stores. We will publish another post with more information detailing what we know about the actions of this bot and how it is using the bug that is fixed in this release later today.

    The gist of it is that the bot is able to create a user when placing an order exploiting the bug fixed by 4.6.2. After creating the user, the bot tries to find vulnerabilities in other plugins installed on the site that require an unprivileged authenticated account. Updating to WooCommerce 4.6.2 will stop the bot from creating a user account when the “Allow customers to create an account during checkout” setting is disabled, but it won’t stop it from creating orders. Removing user accounts created by the bot is recommended.

    Here is the WooCommerce 4.6.2 changelog:

    • Prevent checkout from creating accounts when the related setting is disabled.

    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 any other issues in WooCommerce, please log them in detail on GitHub. Found a security issue? Please submit a report via HackerOne.


  • A new version of WooCommerce Blocks has been released! Version 3.7.0 is available for download from GitHub and WordPress.org.

    Sign up for an account in Checkout block

    This release includes support for creating an account from the checkout block. The signup flow is also updated to use a secure password-reset link for setting the initial account password.

    Checkout signup in blocks requires WooCommerce 4.7, so ensure you keep WooCommerce Core updated on your store.

    Allowing shoppers to sign up to your store during checkout is a great way to strengthen the relationship with your customers. If you’ve been waiting for this to adopt the Cart & Checkout blocks – give them a try now!

    Bug fixes

    This release includes some important bug fixes and improvements. As always, it’s recommended to keep all plugins on your store up to date.

    If your store has orders that total $0 (e.g. free products, or giveaway coupons), this release includes a fix to ensure these are handled correctly.

    See the changelog below for full details about what’s included in the release.

    Changelog

    Enhancements

    • Allow shoppers to sign-up for an account from the Checkout block. (3331)
    • Standardise & refactor colors scss to align with Gutenberg colors and WooCommerce brand. (3300)

    Bug Fixes

    • Fix PHP 8 error when argument is not invocable in AssetsDataRegistry::Add_data. (3315)
    • Improve layout of Cart block line item quantity selector & price on smaller screens. (3299)
    • Correctly process orders with $0 total (e.g. via coupon) in Checkout block. (3298)
    • Respect Enable Taxes setting for checkout block taxes display. (3291)
    • Fix 3D secure payment errors. (3272)
    • Show current selected attributes when re-edit Products by Attribute block. (3185)