Develop WooCommerce

The official WooCommerce development blog

WooCommerce 3.5 Beta is here! — September 12, 2018

WooCommerce 3.5 Beta is here!

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

You can download it directly here or use our new WooCommerce Beta Tester plugin to easily test WooCommerce beta versions and release candidates.

Release highlights

3.5 is the last 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.

REST API v3

The latest version of the WooCommerce REST API is ready, and features new endpoints as well as improvements to existing endpoints. Some of the new features include:

  • A reviews endpoint to list, get, create, and update product reviews.
  • Date fields are now editable on the products endpoint, and the endpoint has been updated to work with the “on backorder” stock status.
  • A series of new reports endpoints to get total counts of orders, products, customers, coupons and reviews.
  • New orderby options for the products endpoint to allow listing products by price, popularity, or rating.
  • Automatic total calculations when applying/removing coupons in the orders endpoint.

More documentation around the new version of the REST API will be available within the next few weeks.

Improved copy for transactional emails

The wording of the WooCommerce transactional emails has remained largely unchanged for years. We have improved the default wording of the emails to be friendlier and more human. Improving the default content will improve the customer experience and reduce the need for store owners to do template overrides of the transactional emails.

This is the first phase of a larger initiative to improve WooCommerce’s emails and email content editing experience. Stay tuned in 2019 for more improvements.

Custom Product Tables support

The use of the postmeta database table for storing product information has been a big bottleneck when scaling WooCommerce stores. We’ve been working on migrating the product information that WooCommerce currently stores in the postmeta table to custom database tables developed and optimized for product data. This will provide large performance boosts to stores and greatly improve their scalability. In our testing we achieved a 30% performance improvement on product-heavy pages with these custom tables!

The 3.5 release will add the hooks and filters required for the Custom Product Tables feature plugin to WooCommerce. Currently the feature plugin is in beta, but it will be production ready soon-enough, and WooCommerce stores will be prepared.

In the meantime, this will make it easy to beta test the feature plugin and see what sort of performance gains your store will get. Please follow beta testing best practices and don’t test on production systems, as the custom tables plugin has the potential to cause loss of data.

Read more about the Custom Product Tables plugin, our plans for custom tables, and how to test the plugin here.

Everything else . . .

Other features include:

  • The ability to export products by category in the CSV exporter.
  • The ability to set a low stock threshold for individual products.
  • An improved payment method settings page with greater accessibility among other accessibility improvements.
  • Error logging for transactional emails using the WooCommerce logger.
  • The Action Scheduler background processing library used by the WooCommerce Subscriptions plugin is now included in WooCommerce and provides a robust, scalable background processing solution for developers. In 3.5 webhooks will be delivered using this library.
  • Numerous performance improvements.

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

  • All of the email templates have been updated with new wordings.
  • cart/cart-shipping.php – Improved shipping calculator experience.
  • cart/mini-cart.php – Removed unnecessary nbsp;s from template.
  • cart/shipping-calculator.php – Improved shipping calculator experience.
  • myaccount/form-edit-account.php – Add form tag hook.
  • myaccount/form-login.php – Add form tag hook.
  • notices/error.php – Run notices through new wc_kses_notice function.
  • notices/notice.php – Run notices through new wc_kses_notice function.
  • notices/success.php – Run notices through new wc_kses_notice function.
  • order/order-again.php – Refactored order again handling.
  • content-widget-product.php – Add extra check to prevent fatal errors when global $product is not a product.
  • single-product-reviews.php – Removed unnecessary aria-required attributes.

Deprecated functions and methods

No functions, classes, or methods will be deprecated in this release.

Release schedule and testing

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

Release Candidate 1 should be tagged on September 26th and will remain in RC for a further 3 weeks until October 17th which is our target launch date.

If you’d like to help us test, you can use our new WooCommerce Beta Tester plugin. 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.5, you’ll find it on the development branch on translate.wordpress.org.

Thanks to all of our testers and contributors!

WooCommerce 3.4.5 security/fix release notes. — August 29, 2018
WooCommerce Beta Tester 2.0.0 — July 30, 2018

WooCommerce Beta Tester 2.0.0

We’re pleased to announce that we’ve launched a new, revamped WooCommerce Beta Tester plugin! The plugin is now hosted on WordPress.org, and you can get it on WordPress.org or install it through the Plugins section of your site admin.

For more details on how to beta test WooCommerce, please refer to one of our earlier posts.

Features

WooCommerce Beta Tester allows you to try out new versions of WooCommerce before they are officially released. You should use this plugin with caution and not on production sites, as beta releases may not be stable.

This plugin allows you to:

  • Easily switch between different released and unreleased WooCommerce versions.
  • Choose one channel to switch versions from (beta/rc/stable).
  • Check release notes of the current chosen version.
  • Submit bug reports on GitHub using the current chosen version (and automatically populate the System Status Report in the bug report)

Technical details

The old version of the plugin used to rely on GitHub’s API and getting information from that in order to download beta/rc/stable versions. For example, if you visit GitHub’s API for WooCommerce you will be provided with a JSON structure of all releases. The plugin would then filter and group the releases based on the results from this API.

However, there is a technical limitation on WordPress.org – they do not host plugins that update other plugins from non-WordPress.org sources, so as a consequence of that the only way you could download our beta testing plugin was from GitHub. With the revamp, we now rely on WordPress.org’s API for WooCommerce, which provides us a JSON structure similar to that of GitHub’s.

Now that we have all the information we need from the WordPress.org API, the next step is to do the actual switch to the targeted WooCommerce version. We achieve that by using the filters pre_set_site_transient_update_plugins and plugins_api_result, by hooking on the WooCommerce plugin and change its zip_url, that is, download_link. We can also do some other fancy changes, like generating a link to the changelog for example.

The source code of the plugin is hosted publicly on GitHub, so feel free to browse around it or do some contributions. 🙂 If you notice a bug please open a report on GitHub.

WooCommerce 3.4.4 fix release notes — July 25, 2018

WooCommerce 3.4.4 fix release notes

WooCommerce 3.4.4 is now available. ~50 commits made it into this release and the full changelog is below.

* Fix - Only wordwrap plain email content. #20723
* Fix - Better escaping on product quick edit. #20740
* Fix - Log file deletion. #20730
* Fix - Search feature in Webhooks and REST API keys settings. #20706
* Fix - Notices in REST API keys settings screen. #20706
* Fix - add a check to prevent WC_Geolite_Integration::get_country_iso() from generating a PHP undefined index notice when unable to determine the country code for a given IP address. #20608
* Fix - Variable product stock display if parent is stock managed and not the variation. #20661
* Fix - Correctly hide cost for zero cost shipping methods after placing orders. #20663
* Fix - Disabled autocomplete to prevent datepicker overlapping. #20687
* Fix - Prevent a PHP notice in the setup wizard when store state is not selectable. #20695
* Fix - Fix logic error in WC_Product_CSV_Exporter::get_column_value_stock. #20753
* Fix - Fixed missing notice about no product variation matching. #20762
* Fix - Correct PHPDocs in exporter class. #20861
* Fix - Prevent Mailchimp redirection during the Setup Wizard. #20879
* Fix - Don't hide coupon form after coupon has been applied. #20889
* Tweak - Remove (optional) text from Address line 2 field. #20622 #20639
* Tweak - Removed 100% width for images on single product page using 2017 theme. #20818
* Tweak - Add margin to best selling product title in the dashboard widget to avoid overlapping the sparkline. #20849
* Tweak - Re-add woocommerce_order_details_after_customer_details_filter removed during WC 3.2. #20886
* Dev - Added woocommerce_calculate_item_totals_taxes filter. #20586
* Dev - Links to next and previous page sent out in HTTP header via REST API fixed for some endpoints. #20686
* Dev - Better wc_format_phone_number cleaning. #20637

Download the latest release of WooCommerce here or venture over to Dashboard → Updates to update your plugins from WordPress.

As usual, if you spot any other issues in WooCommerce core please log them in detail on Github, and to disclose a security issue to our team, please submit a report via HackerOne here. Comments on this post are closed.

Storefront 2.3.3 release notes — July 18, 2018

Storefront 2.3.3 release notes

Storefront 2.3.3 has been tagged for release and uploaded to WordPress.org.

Here’s what’s changed pulled directly from the changelog:

* Tweak - Removed `user-scalable=no` from the viewport meta tag to allow for zooming on mobile browsers.
* Tweak - Allow for a flexible height on the site logo.
* Tweak - Only try to add title from `data-title` to responsive table columns that have this attribute set.
* Fix - Prevent select box from overflowing its wrapping container.
* Fix - Fixed handheld sub navigation dropdown toggle color. It now uses the same color set for the links.
* Fix - Fixed price label direction when in RTL.
* Fix - Removed related products static number of columns. It will now use the value from the wrapper `ul.products`.
* Fix - Removed font weight from default link styles for better compatibility with design plugins.
* Fix - Fixed H3 scopping in WooCommerce Brands integration.
* Fix - Fixed bundle layout issues in Composite Products integration.

Download the latest release of Storefront here or venture over to Dashboard → Updates to update your theme from WordPress.

As usual, if you spot any other issues, please log them in detail on Github.