WooCommerce 4.0 Beta 1

Hello everyone! We are excited to announce that WooCommerce 4.0 is now available for beta testing!

As we’ve announced last week, 4.0 will be a release that brings some breaking changes, but there’s only a small number of those. We don’t expect the update to cause a lot of problems, as the only truly breaking change is including Action Scheduler 3.0 which already runs on more than 10,000 sites with WooCommerce Subscriptions.

Even though the changes are not large, we’re going to test the pre-release versions as much as possible on a broad spectrum of configurations and hosting platforms. To help us out and test the beta release of 4.0, you can download it directly from WordPress.org, or install our WooCommerce Beta Tester Plugin which allows you to easily test out this beta and all future beta and release candidates.

What is new in 4.0?

4.0 is the first major release of 2020 and we’re excited to include the new version of WooCommerce Admin in this release. WooCommerce Admin is the first step towards a more modern JavaScript-driven experience of WooCommerce core.

Read further for more details!

WooCommerce Admin

For readers of the WooCommerce Development blog, you have probably seen the initial announcement and later regular releases of the feature plugin. With the plugin being actively used on more than 1 million stores, we now believe the WooCommerce Admin is ready to be included in the WooCommerce core to bring a set of improvements to all store owners:

  1. New dashboard
  2. New and improved reports
  3. Improved notification experience
  4. New store management tools

WooCommerce admin provides much better reporting capabilities than previous generations of reports and allows for filtering, comparisons and overview how the store is doing in terms of sales, revenue, which products are the most popular/highest-grossing, adds capabilities for improved customer management and analytics.

We’ve also made it very easy to export the data from the reports as csv to enable smooth interoperation with other systems.

Together with the WooCommerce admin, we’re bringing a new Activity panel with improved order management workflow and consistency between the desktop and mobile experience to all the customers.

Due to the JavaScript requirements, this experience will be available to all stores running WordPress 5.3+. Store running older versions of WordPress will have WooCommerce Admin automatically disabled.

Stay tuned for additional blog posts here that will detail how developers can extend the new WooCommerce Admin experience.

Action Scheduler 3.0

One of the underlying technologies that enabled WooCommerce Admin is Action Scheduler—the background job runner already used in WooCommerce core. The 3.0 version that we’re including in WooCommerce 4.0 is a new, more performant version of Action Scheduler which utilizes custom tables to provide a great experience even on stores with large volumes of orders and posts in the database.

Ensuring a stable Action Scheduler in WooCommerce is crucial, and we’re happy to see that more than 10,000 sites are already using it together with the WooCommerce Subscriptions 3 plugin.

If you previously experienced any problems with Action Scheduler, the migration guide for WC Subscriptions 3 might be a useful resource.

Additional Updates

In addition to the new WooCommerce admin, you will find the following enhancements in 4.0:

  • Enhancement to the Order edit screen
  • Latest fixes of WooCommerce Blocks package
  • Updates related to Brexit and VAT
  • Improvements to email handling
  • Optimizations for saving variations and Cash on delivery payment gateway

Beyond these enhancements, the release also contains some tweaks, new hooks, and fixes – all of which you can find out about in the readme.

Template File Changes

The following template files have been updated in this release

cart/shipping-calculator.phpWording of Country updated to Country / Region in shipping calculator
global/quantity-input.phpAdded placeholder attribute for the quantity input
emails/customer-reset-password.phpAdded missing tag for the end of paragraph
emails/email-styles.phpUpdated img CSS
emails/email-header.phpSet table width to 100%
single-product/add-to-cart/grouped.phpAdded placeholder attribute for the quantity input

Deprecated Functions and Methods

  • countries_using_vat

Release Schedule

Here is what we are targeting for the rest of the 4.0 release cycle:

4.0-BetaFebruary 10
4.0-RCFebruary 25
4.0 ReleaseMarch 10


If you’d like to help us test, you can use our WooCommerce Beta Tester plugin. We posted a nice little write-up on beta testing here which should get you started. We also published a set of testing instructions on our Wiki page in GitHub to help anyone interested in testing this new release.

If you discover any bugs during your testing, please let us know in GitHub.

Thanks to all of our testers and contributors!

13 responses to “WooCommerce 4.0 Beta 1”

  1. ….meaning to ask this for a few years… If we test beta releases, how can we get “beta” updates for “other plugins” – Memberships / Subscriptions / _______ ?
    Testing WC alone & in isolation outside of other plugins isn’t exactly ideal.

    1. Peter Fabian Avatar
      Peter Fabian

      Thanks for the question, @bradkgriffin! It is an interesting idea.
      I don’t think there is currently any plan to provide beta versions of those products, but I’ll reach out to marketplace team to see if that is something they would consider.

      1. Well…………… usually Beka + Max come out w/ Memberships update & Brent comes out w/ Subscriptions update. And, then those-who-care-to-keep-up-with-updates come out with updated versions of their plugins as well.
        Again, we’re all testing / twerking (not twerking) / tweaking / and seeing if things work in conjunction with the base of the next WC release. So, it’d be great if the whole concept of “test and let us know if you’ve found any bugs” was extended to plugin authors as well. That way we could test things like subscriptions and memberships or anything else that the plugin authors would like us to test as well 😉
        Are they testing it on their own? Sure! 👍We can all see the changelog to know that. But it might be something to pass along to them as well.

  2. Thanks for the development. But it is surprising that you do not notice a number of points missed in the development of fundamental things. For example, selling non-whole parts. It is not possible to sell 0.1-0.2 for example m2 based on for example width and length or m3 based on 3 parameters. This makes it impossible to sell for example ceramic tiles. All stores can, but woocommerce can’t. Or selling collections of goods is also a curve to add the same collection of tiles there are no ways how to do this. And existing plugins also do not solve this issue, there should be a type of product collection. That’s what I personally expect from the development in the first place, the coverage of fundamental opportunities for selling products that are not ordinary.

    1. Peter Fabian Avatar
      Peter Fabian

      Hi @arsac, Apologies that your use case is not sufficiently covered by WooCommerce. We’re trying to make product decisions in a way that benefits most merchants and keeps the core flexible and lean while providing extra or niche functionality via extensions. You can create an idea or vote on existing ideas at https://ideas.woocommerce.com. I think your suggestion is covered by https://ideas.woocommerce.com/forums/133476-woocommerce/suggestions/34483558-allow-measurements-or-decimal-places-in-product-un
      Our product team is looking at those for inspiration about further development.

    2. @arcsac, there is the capacity to set a “per unit” price so that selling “parts” or “unit” based products are possible:
      Your scenario is valid, but definitely not something that should be baked into core. That is why the plugin above should was created and should work for selling “unit based products”.
      When it comes to “….selling products that are not ordinary….”, that would be what plugins were made for 👍

  3. Thank you for the work you all do.
    Will there be solid documentation for third-party developers to add data to graphics.
    I looked at the Github repository and the code:
    In Github many references no longer exist (reported in readme files).
    The code itself is quite complex and I’m relatively lost on the way to simply add a graphic.

    1. Peter Fabian Avatar
      Peter Fabian

      Hi Nicolas, thanks for your comment. I’m not entirely sure what you mean by adding graphics or data to graphics, but if your question relates to extending WooCommerce Admin interface (e.g. dashboard or reports), then there is an example extension published in the WooCommerce Admin repository: https://github.com/woocommerce/woocommerce-admin/tree/master/docs/examples/extensions

      WooCommerce Admin is using custom database lookup tables to speed up the requests so you can have a look at those to see if they contain the data you need, or you can create your own lookup tables/extend the existing ones. We currently don’t have a tutorial covering such a complex use case, but we are preparing some more tutorials/documentation for 4.0, so please follow our blog for more news.

  4. Ian Atkins Avatar

    Shouldn’t those Brexit changes not be released until Brexit actually legally takes effect? The developer notes as such on the github ticket? https://github.com/woocommerce/woocommerce/pull/24943

    Great to see you guys are on that ahead of time though.

    1. Peter Fabian Avatar
      Peter Fabian

      Hi Ian,

      We removed UK from the list of EU countries, which should be correct as far as we know, UK has left the EU. It still belongs to the list of countries charging VAT. Other than that, we believe there are no changes to be done for us regarding Brexit. If you know about something, please open an issue on GitHub or let us know here in the comments. Thanks!

  5. subrata dey Avatar
    subrata dey

    Has the issue of product filter not taking into account variation stock been addressed. Say for example if I filter product by size all products inspite of being out of stock are shown in the shop page. Has this been fixed?

  6. Hey, thanks for the great job done!
    I hope one day that there will be a feature to manage inventory by attribute. For example if I have 1 meter of fabric and I can make 5 t-shirts with different prints, I could create 5 different products but with stock per attribute controlling all 5 prints. It doesn’t matter if I sell 5 in one print,
    what matters is that i have 1 meter of fabric in stock that i can make 5 t-shirts regardless of the print.

Leave a Reply

Your email address will not be published. Required fields are marked *