Changelog

  • Release Candidate for the January 9, 2024 release of WooCommerce is now available for testing! You can either download it directly from WordPress.org or install our WooCommerce Beta Tester Plugin.

    Highlights

    Since the release of 8.5.0 Beta, the following changes have been made:

    • Fixed an error in the cart from the Product Collection block when Google Analytics plugin was enabled (#43177).
    • Reverted a recent change introduced in 8.5.0 Beta so that the feedback bar from the new Product Editor is visible every time the user opens the editor (#43178).

    For the complete list, view the changelog in the readme for this release.

    Release Schedule

    We’re on track for our planned January 9, 2024 release.

    VersionRelease
    Final ReleaseJanuary 9, 2024

    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.

    We’ve 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 January 9, 2024 release of WooCommerce is now available for testing! You can either download it directly from WordPress.org or install our WooCommerce Beta Tester Plugin.

    Highlights

    Since the release of 8.4.0, the following changes have been made:

    For the complete list, view the changelog in the readme for this release.

    Release Schedule

    We’re on track for our planned January 9, 2024 release.

    VersionRelease
    Release CandidateJanuary 2, 2024
    Final ReleaseJanuary 9, 2024

    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.

    We’ve 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.


  • We are pleased to announce the release of WooCommerce 8.4.0. This release should be backwards compatible with the previous version.

    This release contains:

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

    What’s new in 8.4.0?

    WC Blocks feature – Product Collection: Add support for filtering products by featured status

    These changes allow merchants to easily display only featured products in their product collections, enhancing flexibility.

    Manage your subscriptions for Woo extensions from your store

    Want to manage all your licences for Woo.com themes and extensions? WooCommerce 8.4 makes it easy. Go to WooCommerce > Extensions and click on the My subscriptions tab. You’ll see all your subscriptions to Woo.com products. Quickly install extensions on your store, renew expired subscriptions, view documentation and more!

    Shipping Settings Refresh

    There are new flows for adding Shipping Zone methods in Settings. The process of adding new Shipping Zone methods has been streamlined into a single flow rather than requiring merchants to add and configure methods in separate places.

    There is also a new modal for adding and editing Shipping classes to match methods.

    Virtual & Downloadable product support in the new product creation experience

    The new product creation experience enabled under Settings > Advanced > Features, now has support for creating Virtual & Downloadable products.

    Downloads field is available in the General tab, allowing you to upload files or insert by URL:

    For virtual products, a checkbox has been added in the Shipping tab to remove the need for shipping:

    PRs related to these changes

    • WooCommerce Blocks has been updated to 11.6.2. See the release notes for changes. #41641, #41743, #41869
    • The Shipping Settings feature has been refreshed. #40983
    • The My Subscriptions feature has been rebuilt. #40249

    Other changes

    • Security fix to remove the potential for a Reflected XSS attack in relation to the dismissable “Product reviews have moved!” notice in the edit comments screen.
    • Many other updates!

    For a complete list of the changes included in this release, please see the changelog in the readme for this release.

    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

    wavvves
    chihsuan
    vladolaru
    mdperez86
    PanosSynetos
    louwie17
    tommyshellberg
    Konamiman
    zigasancin
    oginomizuho
    mattsherman
    Rahmon
    AnnaMag
    coreymckrill
    mikejolley
    invalid-email-address
    jonathansadowski
    bgrgicak
    octaedro
    ilyasfoo
    james-allan
    message-dimke
    gigitux
    moon0326
    nigeljamesstevenson
    MarcoDev200
    rodelgc
    ecgan
    veljkho
    lanej0
    n2erjo00
    danielwrobert
    Dan-Q
    albarin
    waclawjacek
    rrennick
    retrofox
    kdevnel
    raicem
    barryhughes
    andfinally
    nathanss
    budzanowski
    manospsyx
    crunnells
    vahabm74
    opr
    lsinger
    adrianduffell
    xristos3490
    ifinoi
    decodekult
    elazzabi
    eason9487
    webdados
    ObliviousHarmony
    mi5t4n
    marcodafonseca
    jorgeatorres
    abelsonlive
    psealock
    nefeline
    kevinbates
    nielslange
    rjchow

    ActionScheduler

    coreymckrill
    lsinger
    barryhughes
    prettyboymp
    Konamiman
    alopezari
    sweber83

    WooCommerce Blocks

    samueljseay
    sunyatasattva
    prettyboymp
    gigitux
    Maikuolan
    tarunvijwani
    imanish003
    mikejolley
    thealexandrelara
    tjcafferkey
    nielslange
    danieldudzic
    awesomephant
    parikshit-adhikari
    tarhi-saad
    albarin
    nefeline
    Aljullu
    nerrad
    hsingyuc
    senadir
    invalid-email-address
    opr
    danielwrobert
    dinhtungdu
    alexflorisca
    roykho
    kmanijak
    wavvves

  • Release Candidate for the December 12 release of WooCommerce is now available for testing! You can either download it directly from WordPress.org or install our WooCommerce Beta Tester Plugin.

    Highlights

    Since the release of 8.4.0 Beta, the following changes have been made:

    • WooCommerce Blocks has been updated to 11.6.2. #41869
    • Fixed some issues in the new Shipping Settings feature. #41834 #41833
    • Fixed an issue that breaks the shipping input fields in the new product editor for stores in Europe or other areas where the thousandSeparator is blank. #41792

    For the complete list, view the changelog in the readme for this release.

    Release Schedule

    We’re on track for our planned December 12 release.

    VersionRelease
    Final ReleaseDecember 12, 2023

    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.

    We’ve 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.


  • The latest version of WooCommerce Blocks, version 11.7.0, is now available for download on WordPress.org and GitHub.

    Keep in mind that this is the last major release of WooCommerce Blocks as in the future it will be part of the WooCommerce Monorepo. You can read more about it and how it might impact you in the developer advisory: “WooCommerce Blocks Merging into the WooCommerce Monorepo“.

    Notable Changes

    Mini-Cart block automatically injected to header patterns and template-parts

    Thanks to Block Hooks API, the Mini-Cart block is now automatically injected into the WooCommerce header patterns and template-parts by default. It appears next to the navigation and adjusts to the header layout but you can move it around or remove it if you like.

    Please check a short video presenting where to look for header patterns with a Mini-Cart block.

    For now, Mini-Cart is automatically injected only in the Twenty Twenty-Four theme but we can expand the list of themes this supports in future iterations.

    Rename the Product Collection “Shrink columns to fit” option to “Responsive” and enable it by default

    Recently, we added a “Shrink columns to fit” option in the Product Collection block. This makes your product grid responsive. The option has now been renamed to “Responsive” which we found to better explain its purpose.

    You can still find it in Product Collection’s inspector controls, next to the “Columns” setting:

    UI of the Product Collection block showing the Columns and Responsive controls.

    Another important change is this option is now enabled by default for newly added Product Collection blocks!

    Hook woocommerce_single_product_summary action to core/post-excerpt block

    Use woocommerce_single_product_summary action to extend your Single Product template. The hook is attached to the Post Excerpt block so the content you’d like to display on Single Product template will appear above the Product Summary which is a variation of Post Excerpt block.

    To make it work, add an action like:

    add_action('woocommerce_single_product_summary', function() {
    	echo 'woocommerce_single_product_summary';
    });

    and the content will appear on the Single Product pages like this:

    Single product template displaying a usage of the `woocommerce_single_product_summary` action.

    Changelog

    Enhancements

    • The Block Hooks API is implemented to auto-inject the Mini-Cart block in header patterns and template parts when the “Twenty Twenty-Four” theme is active. The Mini-Cart block also now defaults to not show the total for the items in the cart when inserted into content. (11745)
    • Decrease modal width. (12003)
    • [Store Customization] Update the default content in patterns. (11997)
    • [Store Customization] Update the “Footer with 3 Menus” pattern to remove the last 2 menus. (11980)
    • Limit number of visible incompatible extensions in sidebar notice. (11972)
    • Improve readability of order note. (11944)
    • Reorganise Columns controls and fix undefined problem in Product Collection settings. (11937)
    • Switch to NoticeBanner component inside Store Notices Block placeholder. (11920)
    • Preserve shrinkColumns value when switching the layout type of Product Collection. (11905)
    • Tweak the product prompt. (11903)
    • Add DELETE private/ai/pattern endpoint. (11890)
    • Update notice for default cart and checkout. (11861)
    • Enable shrink columns option in Product Collection by default. (11821)
    • Move Combobox to components package. (11353)
    • Interactivity API: Implement the new store() API. (11071)

    Bug Fixes

    • [CYS] Fix regression and ensure AI-generated content is assigned to products after the third attempt. (12016)
    • [Product Collection] Fix: HTML Entity Decoding in Taxonomy Controls. (11982)
    • Product Gallery: Add a Product Image fallback. (11978)
    • Reviews by Product: Fix reviews count not appearing in product selector. (11976)
    • Hook woocommerce_single_product_summary action to core/post-excerpt block. (11953)
    • fix: Store notices always shows as an error type #11768. (11932)
    • [Product Collection] Fix: HTML entity decoding for product names in Hand-Picked Products. (11927)
    • Validate coupon usage against customer id AND emails. (11860)
    • Pass order ID to woocommerce_before_thankyou hook. (11852)
    • Translate the prefixes passed to post-terms in product-meta. (11811)
    • Prevent fatal errors when using Cart Tokens and creating new accounts on checkout. (11785)
    • Product Gallery Thumbnails: Add support for cropping. (11718)
    • Fix: Product Collection show products with correct stock statuses. (11708)
    • Product Gallery Thumbnails: Fix overflow issues and improve responsiveness. (11665)

    Various

    • Update extensibility doc. (11924)
    • Move CheckboxControl to components package and leave alias in checkout package. (11662)

  • Beta 1 for the December 12 release of WooCommerce is now available for testing! You can either download it directly from WordPress.org or install our WooCommerce Beta Tester Plugin.

    Highlights

    Since the release of 8.3.0, the following changes have been made:

    For the complete list, view the changelog in the readme for this release.

    Release Schedule

    We’re on track for our planned October 10 release.

    VersionRelease
    Release CandidateDecember 5, 2023
    Final ReleaseDecember 12, 2023

    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.

    We’ve 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.


  • The latest version of WooCommerce Blocks, version 11.6.1, is now available for download on WordPress.org and GitHub.

    Notable Changes

    Product Collection: Add support for filtering products by featured status

    These changes allow merchants to easily display only featured products in their product collections, enhancing flexibility.

    Changelog

    Enhancements

    • Product Collection: Add support for filtering products by featured status. #11522
    • Product Collection – New ‘No Results’ block with default UI. #11783
    • We have moved the TotalsItem, TotalsFees, Subtotal, Banner, StoreNotice, StoreNotices, Panel, TextInput, ValidatedTextInput and ValidationInputError components to the @woocommerce/blocks-components package. Previously these were available in @woocommerce/blocks-checkout . Your code will continue to work as we have added aliases to the new location. Despite this, it is recommended that you change your code to import this component from @woocommerce/blocks-components as the import from the checkout package will be deprecated in the future. #11766 #11698 #11654 #11773
    • Improve performance in patterns registration. #11733
    • Patterns: remove unused author, sticky, and parents attributes from the Product Collection block in patterns. #11673
    • Semantic enhancement to the position of a phone field in Checkout. #11651
    • Migrate the Product Button to the new store() API of the Interactivity API. #11558

    Bug Fixes

    11.6.1

    • Add missing woocommerce classname to Classic Cart/Checkout Blocks container so UI updates when the cart is emptied. #11919
    • Fix an issue that caused the Order by select in Reviews blocks to always be disabled. #11918
    • Fix All Reviews, Reviews by Product and Reviews by Category blocks not being rendered. #11913

    11.6.0

    • Make “Use same address for billing” visible by default. #11804
    • Fix the order endpoint tax line items format. #11796
    • Store API/Blocks Extensibility: Fix recursive extension schema validation. #11792
    • Fix: Left align local pickup address. #11772
    • Fix typo in classic checkout modal. #11771
    • Fix hardcoded shop link in “Hero Product 3 Split” pattern. #11767
    • Fix billing address condensed address state in the editor and in Firefox. #11765
    • Related Products: Make the heading translated when in blockified Single Product template. #11693
    • Add to Cart with Options block: fix inconsistency between editor and frontend styles. #11614
    • Product Button: Improve the width and padding. #11537
    • Fix the Layout for Shipping and Billing Address Forms in the Checkout Block #11486
    • Minor fixes for PHP 8. #11473
    • Product Button: always enqueue the store. #11858
    • Fixed params passed to woocommerce_before_thankyou for block checkout. This should be an order ID, not an order object. #11862
    • Enhanced validation for limited-use coupons and guest users. #11860

    Documentation

    • Updated documentation for the onProcessingSetup observer. #11751

  • WooCommerce 8.3.1 is now available for download.

    What’s new?

    • Fixed an issue where coupon usage restrictions may not have been respected for guest orders when HPOS is enabled. #41538
    • Update WooCommerce Blocks to 11.4.9, which fixes an issue where email address was not considered while evaluating coupon restrictions when using checkout blocks. #41610

    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.


  • For the past few months, we have been busy building out a brand-new product creation experience. You may have read about it previously, and hopefully even tried it out yourself. If not, don’t worry… we will explain how to do so later in this post!

    The product creation process has been redesigned from the ground up to focus on commerce, providing users with a seamless experience for crafting a wide range of products, from simple ones to highly customized options. This experience is still under active development, and we aim to reach feature parity early in 2024. Built with extensibility as a core principle, the new product editor provides developers with straightforward tools to integrate their unique features into the product creation process.

    In fact, we are using these mechanisms to develop the new product editor itself!

    We are approaching this project with the following guiding principles:

    • Provide a low complexity API that can be used via PHP, as we have heard from many developers that this is preferred.
    • Provide tooling to help set up the development environment.
    • Provide backwards compatibility when possible.
    • Use GitHub Discussions for brainstorming and decision-making, inviting contributions and feedback from the development community.

    About Product Editor Extensibility

    The design

    The new product editor is organized into clearly defined tabs and sections, reflecting our research that finds that merchants think in terms of tasks and goals while creating new products in WooCommerce. 

    The new product editor

    You can help ensure your extension makes the most of this new design by reading our extensibility guidelines, which will help you determine where you should add new features to the product editor.

    The implementation

    The new product editor is implemented using the same Blocks API that powers the post and site editors in WordPress. However, whereas a “regular” block editor allows the end user to add blocks anywhere and rearrange those blocks, the product editor offers a more familiar, structured form-based experience, which is more suitable for the data entry and modification that is at the heart of product management.

    As such, we have developed a simple PHP-based API, targeting our PHP developers in the WooCommerce community, which allows developers to easily extend the product editor’s form.

    Extensibility features

    Through a PHP-based API, developers are able to:

    • Add new blocks to the form; we supply a number of generic blocks that can be used out of the box, including:
      • Checkbox
      • Pricing
      • Radio
      • Text
      • Toggle
    • Remove blocks from the form
    • Conditionally hide and disable blocks on the form based on properties of the edited product, such as the product type

    If an extension requires interactivity not available via our generic blocks, developers can easily implement a custom block using JavaScript and React.

    Getting started

    Try out the new product editor

    Note: Since WooCommerce 7.9 (mid-July 2023), a subset of new stores have the new product editor auto-enabled as part of tests that Woo is running to help shape the new product creation experience. Users can easily opt-out of the new product editor and return to the classic product editor if they need functionality and extensions that are not yet available in the new product editor.

    If you haven’t already, try out the new product editor so you can become familiar with how the new experience feels.

    Go to WooCommerce > Settings > Advanced > Features and enable Try the new product editor (Beta).

    Enabling the new product editor

    Next, go to Products > Add New to try out the new editor.

    The new product editor

    Try adding a new block to the editor

    There are a number of examples in the documentation on how to use the PHP-based API. Here is a simple example that adds a new field after the product name field. Add this to a test plugin and reload the product editor page.

    <pre class="wp-block-syntaxhighlighter-code"><?php
    use Automattic\WooCommerce\Admin\BlockTemplates\BlockInterface;
    if ( ! function_exists( 'YOUR_PREFIX_add_block' ) ) {
    	/**
    	 * Add a new block to the template after the product name field.
    	 *
    	 * @param BlockInterface $product_name_field The product name block.
    	 */
    	function YOUR_PREFIX_add_block( BlockInterface $product_name_field ) {
    		$parent = $product_name_field->get_parent();
    		if ( ! method_exists( $parent, 'add_block' ) ) {
    			return;
    		}
    		$parent->add_block(
    			[
    				'id'         => 'example-block',
    				'order'      => $product_name_field->get_order() + 5,
    				'blockName'  => 'woocommerce/product-text-field',
    				'attributes' => [
    					'property' => 'meta_data.example_block_property',
    					'label'    => __( 'Example block', 'YOUR_TEXT_DOMAIN' ),
    				],
    			]
    		);
    	}
    	add_action(
    		'woocommerce_block_template_area_product-form_after_add_block_product-name',
    		'YOUR_PREFIX_add_block'
    	);
    }
    </pre>

    Here is the result:

    The new “Example block” field appears under the “Name” field

    Note that the block’s input will also be persisted automatically in the metadata of the product. There is no other configuration necessary!

    Explore the extensibility guidelines

    Now that you have a feel for the new product editor, start thinking about how to best bring your extension’s functionality to merchants using it. Read the extensibility guidelines for tips and best practices.

    Let us know what you think

    Are there things you love about extending the new product editor? We sure hope so! Let us know.

    Even more importantly, let us know what documentation and functionality is missing that you need in order to successfully bring your extension to the new product editor.

    Share your thoughts with us in our discussion forum and in Slack:

    Where to find more information

    We are actively working on providing documentation for new product editor development:


  • We are pleased to announce the release of WooCommerce 8.3.0. This release should be backwards compatible with the previous version.

    This release contains:

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

    WordPress Version Support

    The versions of WordPress supported are now WP6.4 and WP6.3 (due to the release of WordPress 6.4 last week given the L-1 support policy).

    Whats new in 8.3.0?

    Default Cart, Checkout, and Order Confirmation Blocks on new installations

    We’re thrilled to announce a significant enhancement to the WooCommerce experience, designed to simplify and elevate your online store setup. Starting with WooCommerce version 8.3, we’ve integrated Cart, Checkout, and Order Confirmation blocks as the default checkout experience for new installations. This means that from the beginning, your store will feature a modern, intuitive, and visually appealing checkout journey.

    Compatibility and Scope

    For new installations with block-based themes (such as TT3, TT4, etc.), the default checkout experience includes the Cart Block, the Checkout Block, and the new Blockified Order Confirmation template. We’ve ensured that this change won’t impact existing stores, providing a worry-free transition for our users. Users updating to 8.3 will keep the existing checkout experience.

    Effortless Migration using Page Creation tool

    For existing stores, you can now use the WooCommerce > Status > Tools > Create Pages tool to generate new pages effortlessly, incorporating blocks seamlessly into the checkout flow after deleting the old Cart and Checkout pages. This feature is designed to give users a hassle-free way to update the Cart and Checkout experience in one go.

    Note: While we’re bringing you an enhanced checkout experience, please note that, for now, the blockified Order Confirmation template will be exclusively available for block-based themes. Stay tuned for future updates as we refine and expand our offerings.

    Themes in the WooCommerce Marketplace

    With WooCommerce 8.2, we soft-launched a revamped Extensions page. With this release we see the next evolution with the introduction of themes. Visit WooCommerce > Extensions to quickly find the theme that’s perfect for your business.

    Marketplace search improvements

    The search experience in the new Marketplace has been improved by showing themes first if there are no extensions, empty search will open the discovery page, and large screens will show 8 results if available.

    Mobile app onboarding experience has been improved

    In this first iteration, we aim to improve the app installation rate by showing a QR code with text instructions on where to install the app. As Woo mobile no longer requires Jetpack (the merchant can log in with site credentials and the app generates an application password), we also want to remove the Jetpack setup steps for non-Jetpack sites since we’re seeing a low conversion rate. For WPCOM/Jetpack sites, the CTA to send a magic link email stays the same.

    In iteration 2, we plan to provide a QR code with a link to pre-fill the site credentials except for the password for non-Jetpack sites at least. We’re also exploring generating an application password and including it in the QR code.

    Other changes

    • The experimental email opt-in field from the Core Profiler has been improved to perform better email validation. #41152
    • Jetpack data is now preloaded even without the Jetpack plugin installed. #41092
    • Images have been optimized to reduce the WooCommerce package size
    • The compatibility issue with PHP 8.3 related to performing an array_sum() is resolved. #41205
    • New blockified Order Confirmation template is now available by default on new installations. #41276
    • Using WordPress 6.4 release sites that rely on using the Classic Template block for the Single Product template are no longer broken. #41291

    For a complete list of the changes included in this release, please see the changelog in the readme for this release.

    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

    nathanss
    psealock
    senadir
    rrennick
    sebcode
    moon0326
    Dan-Q
    danieldudzic
    raicem
    tommyshellberg
    ibndawood
    n2erjo00
    mattsherman
    vladolaru
    jimjasson
    puntope
    lsinger
    chihsuan
    crunnells
    nefeline
    rodelgc
    dmallory42
    lanej0
    webdados
    nigeljamesstevenson
    louwie17
    mdperez86
    octaedro
    tarhi-saad
    tjcafferkey
    waclawjacek
    tarunvijwani
    invalid-email-address
    wavvves
    Lenny4
    veljkho
    andfinally
    ismaeldcom
    ilyasfoo
    coreymckrill
    sanesh-acowebs
    gigitux
    jaclync
    YordanSoares
    brentmackinnon
    vedanshujain
    opr
    mpskovvang
    ObliviousHarmony
    rjchow
    bgrgicak
    PanosSynetos
    roykho
    mi5t4n
    kdevnel
    jorgeatorres
    nielslange
    barryhughes
    joelclimbsthings
    daniyalahmadk
    Konamiman
    alopezari
    jonathansadowski
    adamsilverstein
    johanmolen

    ActionScheduler

    lsinger
    prettyboymp
    coreymckrill
    barryhughes
    alopezari

    WooCommerce Blocks

    iamahens
    senadir
    thealexandrelara
    wavvves
    tarunvijwani
    masteradhoc
    ralucaStan
    invalid-email-address
    opr
    albarin
    gigitux
    tjcafferkey
    nefeline
    danieldudzic
    roykho
    alexflorisca
    dinhtungdu
    danielwrobert
    mikejolley
    kmanijak
    message-dimke
    nielslange
    larsenlarsson
    hritikchaudhary
    hsingyuc
    tarhi-saad
    samueljseay
    imanish003