Develop WooCommerce

The official WooCommerce development blog

WooCommerce 4.0 Beta 1 — February 10, 2020

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, 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!

Continue reading
WooCommerce 3.8 Beta 1 — October 3, 2019

WooCommerce 3.8 Beta 1

WooCommerce 3.8 is now officially available for beta testing.

You can:

What’s new in 3.8?

WooCommerce 3.8 is the third and possibly last minor release of 2019. Being a minor release, everything is backward compatible. As we work towards smaller and more frequent releases, this release has fewer changes than usual.

WooCommerce Blocks

We are excited to announce that this version of WooCommerce includes WooCommerce Blocks 2.4. This is an upgrade from WooCommerce Blocks 2.3, which was bundled with WooCommerce 3.7.

WooCommerce Blocks is our eCommerce-focused block collection for the Gutenberg editor that has been part of WordPress since 5.0.

Version 2.4 introduces new blocks to display product reviews and a product search, plus fixes to existing blocks.

Review block
product search
Product Search Block

Check out the WooCommerce Blocks 2.4 release notes for a detailed look!

If you want to follow the latest developments, you can install the feature plugin as well.

Nudge for WordPress and PHP Version

Note that there is no change in the minimum requirements for this version.

However, sites not currently running on PHP 7.0 and WordPress 5.0 will see a notification to upgrade to the latest and greatest. Why?

In WooCommerce 3.9, the next release, we are scheduled to update the minimum version of PHP to 7.0 (now 5.6.20) and WordPress to 5.0 (now 4.9) to keep up with changes in the WordPress and PHP ecosystem.

Additional Enhancements

And there’s more in WooCommerce 3.8:

  • Wording Available on backorder for products that are available on backorder.
  • Opt-out for usage tracking in the Setup Wizard, which adheres to plugin team guidelines.
  • Full support for PHP 7.4, with integrated testing for PHP 7.4 enabled in the development cycle.
  • A new template content-widget-price-filter.php for displaying a product price filter widget. This was earlier embedded in a core file and has moved to a dedicated template file.

The release also contains tweaks, new hooks and fixes, all of which you can find in the ReadMe.

Testing Instructions

A Wiki in GitHub has been published to help people interested in testing the new release. Go to: Release Testing Instructions for 3.8.

Release Schedule

We expect to release 3.8 on this timeline:

BetaOctober 3, 2019
Release CandidateOctober 15, 2019
Release 3.8November 5, 2019

If you’d like to help us test, use the WooCommerce Beta Tester plugin and new testing instructions Wiki. Feel free to read our write-up on How to beta-test WooCommerce and jump right in!

Community Chat

All testers are welcome to join us at the next Community Chat scheduled for October 31 at 16:00 UTC in the #core channel of the WooCommerce Community Slack.

WooCommerce 3.4 RC1 — May 9, 2018
WooCommerce 3.4 beta 2 — May 3, 2018

WooCommerce 3.4 beta 2

WooCommerce 3.4 beta 2 is now available. This beta release has a whole host of bug fixes and is ready for testing! To test WC 3.4 beta 2 you can use our beta tester plugin or download the release here.

Thanks for testing WooCommerce, and if you find any bugs please open an issue!

WooCommerce 3.4 Beta is here! — April 18, 2018

WooCommerce 3.4 Beta is here!

Today we’re pleased to announce that WooCommerce 3.4 is available for beta testing!

You can download it directly here or WooCommerce prerelease versions are also now available at

Release highlights

3.4 is the second minor release this year. Being a minor release, all new functionality should exist in a backwards-compatible manner. Updating from any version since 3.0 should be hassle free!

Here is what to look out for in the update.

GDPR compliance

Enforcement of the EU General Data Protection Regulation (GDPR) begins shortly after the release of WooCommerce 3.4. We have added tools and features to help store owners become GDPR-compliant and deal with GDPR requests from customers.

Some of these features include:

  • Ability to add privacy policy text to checkout and account pages
  • Integration with the exporter coming in WordPress core (soon)
  • Tools to clean up (trash) and anonymize old orders which don’t need processing.
  • Tools to remove some optional fields from the checkout.

You can read more about how we’re tackling GDPR in WooCommerce core here, or read the readme for the full list.

GeoLite2 integration

WooCommerce uses the MaxMind GeoLite database for geolocation during checkout to automatically select the customer’s correct country. The GeoLite database has been discontinued by MaxMind, and GeoLite2 is the replacement. This release adds support for and integrates WooCommerce with GeoLite2 to ensure geolocation will continue working correctly for the forseeable future. The whole process is automatic and no further action is needed on the store owner’s part to keep geolocation working correctly.

The library that integrates with GeoLite2 requires a minimum PHP version of 5.4. As a necessary step WooCommerce will not support geolocation using GeoLite2 on PHP versions less than 5.4.

On sites running those PHP versions geolocation will be done through the REST API. The API-based geolocation is a slower method, and it is recommended you update your PHP version if you are running a version less than 5.4.

If you need help upgrading your PHP version, here is our handy guide.

Beginning this release, the recommended PHP version for WooCommerce is 7.2.


Multisite dashboard widget

WooCommerce 3.4 introduces a new dashboard widget for multisite installs. This widget shows processing and on hold orders the user has access to from across the multisite network. This lets store owners and managers easily see orders that need action without having to manually go and check each site.

This should be a big time-saver for anyone that runs multiple WooCommerce stores using multisite!

Everything else . . .

Other features include:

  • Wildcard email support for coupon restrictions. Using the wildcard character you can set up coupons restricted to groups of similar email addresses (.edu email accounts, corporate email accounts from a certain business, etc.).
  • Users can now set their display name on the My Account page.
  • Improvements to the admin product search, including stopword support and the ability to search for multiple products in the same query.

On top of the new features, there are a variety of minor tweaks, new hooks, and fixes. We won’t go into detail here, but you can see the full list of changes in the readme if you’re interested!

Template file changes

  • auth/form-login.php – Named nonces and used nbsp; to separate the * in required fields to prevent awkward line breaks.
  • cart/cart.php – Named nonces and added filter around backorder notification text.
  • cart/shipping-calculator.php – Named nonces.
  • checkout/form-coupon.php – Use no-js class to to hide forms/content that require JavaScript.
  • checkout/form-login.php – Use no-js class to to hide forms/content that require JavaScript.
  • checkout/form-pay.php – Named nonces.
  • checkout/payment.php – Named nonces.
  • checkout/terms.php – Make sure terms page exists and isn’t trashed. Used nbsp; to separate the * in required fields to prevent awkward line breaks.
  • emails/plain/email-customer-details.php – Fixed converting letters with accents to uppercase.
  • emails/plain/email-downloads.php – Make woocommerce_email_downloads_column_ hook format aware.
  • emails/plain/email-addresses.php – Fixed converting letters with accents to uppercase.
  • emails/plain/customer-reset-password.php – Removed user login from reset password link.
  • emails/plain/email-order-details.php – Fixed converting letters with accents to uppercase.
  • emails/customer-reset-password.php – Removed user login from reset password link.
  • emails/email-downloads.php – Make woocommerce_email_downloads_column_ hook format aware.
  • global/form-login.php – Used nbsp; to separate the * in required fields to prevent awkward line breaks.
  • global/quantity-input.php – Escape and strip tags to prevent broken HTML.
  • myaccount/form-add-payment-method.php – Named nonces.
  • myaccount/form-edit-account.php – Added autocomplete attributes. Used nbsp; to separate the * in required fields to prevent awkward line breaks.
  • myaccount/form-edit-address.php – Named nonces.
  • myaccount/form-login.php – Added class and autocomplete attributes to form. Used nbsp; to separate the * in required fields to prevent awkward line breaks.
  • myaccount/form-lost-password.php – Named nonces and added autocomplete attributes.
  • myaccount/form-reset-password.php – Named nonces and added autocomplete attributes. Used nbsp; to separate the * in required fields to prevent awkward line breaks.
  • order/form-tracking.php – Named nonces.
  • single-product/add-to-cart/grouped.php – Added woocommerce_add_to_cart_form_action filter and class to form.
  • single-product/add-to-cart/simple.php – Added woocommerce_add_to_cart_form_action filter.
  • single-product/add-to-cart/variable.php – Added woocommerce_add_to_cart_form_action filter and fixed variation URL bug when using special characters.
  • single-product/review-meta.php – Add escaping to publish date to prevent broken HTML.
  • templates/archive-product.php – Use woocommerce_product_loop instead of have_posts.

Deprecated functions and methods

  • WC_Geo_IP has been deprecated since the legacy GeoLite database has been deprecated. See the begining of this article for more info.
  • WC_Widget_Product_Tag_Cloud::_get_current_taxonomy has been deprecated for WC_Widget_Product_Tag_Cloud::get_current_taxonomy.
  • WC_Widget_Product_Tag_Cloud::_topic_count_text has been deprecated for WC_Widget_Product_Tag_Cloud::topic_count_text.

Release schedule and testing

We’re hoping to keep WooCommerce 3.4 in beta for the next 5 weeks. If you’re a developer please check extensions and themes are compatible to be safe.

Release Candidate 1 should be tagged on May 9th and will remain in RC for a further 2 weeks until May 23rd which is our target launch date.

If you’d like to help us test, you can download the release from Github. We posted a nice little write-up on beta testing here which should get you started. Please read that and jump right in!

If you’d like to help translate 3.4, you’ll find it on the development branch on

Thanks to all of our testers and contributors!