Today we’re excited to release WooCommerce 3.2 into the wild! 3.2 has been in development since July, and has had over 1610 commits from 98 contributors.

3.2 is a minor update. All changes should be backwards compatible with 3.0 and 3.1 sites, but we do still recommend ensuring extensions and themes are compatible before upgrading by testing on a staging site, and making backups for peace of mind.

Greater control over coupons in admin

A popular request on the ideas board was to be able to apply coupons to existing orders. We’ve finally tackled this in 3.2!

To use this new feature, simply edit an order, click the “apply coupon” button and enter a coupon code. The re-calculations will be done automatically. You can also remove coupons from orders and have them re-calculate the totals for you!

This was tricky to develop because of the way the cart and coupons were built initially, so some refactoring was needed, but we tried to implement these changes in a backwards compatible manner so extensions wouldn’t require changes. You can read more about these changes here.

Extension support version checks before core updates

WooCommerce 3.2 supports a new plugin header named WC Tested Up To. With this, plugin authors can specify which versions of WooCommerce have actually been tested and confirmed working prior to updates.

These advisories will be shown on the plugin update screen for future WooCommerce core updates.

If an extension does not use these headers, there will be a warning anyway; it may be a sign that the extension is not regularly updated. If a plugin uses the term “WooCommerce” in the plugin name or description, it will be included here too.

You can read more about this feature here.

Features for store owners

There are a lot of new things in this release to make your experience more pleasant; here’s a list of things you may notice whilst using WooCommerce:

  • There are now more accessible enhanced select boxes, with keyboard and improved screen-reader support available in admin and on the checkout.
  • We’ve simplified the ability to resend order details to customers by including one option to “resend” on the edit order page.
  • The wizard has been revamped to help with shipping, payment gateways, and opt-in to services like automatic taxes and shipping labels. You’ll notice this if you setup a new store on WooCommerce in the future.
  • We added drag and drop sorting on the grouped product field to control display order of products on the frontend.
  • The product category filter on the products screen has been AJAXified to avoid the need to load all categories at once. This helps resolve some scaling issues.
  • When showing search results, we’ve added back the sorting dropdown. This defaults to sorting by relevance rather than date.
  • We added a new option to control the maximum depth of categories shown in the product category widget.
  • In order to make it easier for customers who use a large number of WooCommerce.com extensions on their stores we have added some new filters allowing you filter extensions by status.
  • There is also a new notification icon under the Extension menu item, as well as the ​​​My Subscriptions tab, indicating the count of extensions that can be updated.

Features for store builders and developers

If you’re building stores for clients, or just developing on top of WooCommerce, here’s some new toys at your disposal.

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

Additonally, for both agencies and developers, we have implemented a new feature on WooCommerce.com which allows you to share your subscriptions with your clients (great for multi-site subscriptions) removing the need to connect your clients site to your personal WooCommerce.com account.

Upgrading to 3.2

3.2 is a minor update and should be compatible with 3.1 and 3.0 sites. We still recommend testing + backing up prior to upgrading just to be safe.

Note: There is 1 post-update database upgrade routine that needs to run in order to update Mexican state names to state codes. This may run for a while if you have a large orders database.

If you’re a developer and have somehow missed the beta and RC, the following information may be useful.

Template file changes in 3.2

When editing core template files we bump the version so themes know they need to update custom versions. The following files were updated in 3.2:

  • mini-cart.php – Changes to support AJAX remove from cart buttons.
  • shipping-calculator.php – Fix to state field naming and support for select2.
  • order-receipt.php – New. Moved from template function.
  • downloads.php – New table of customer downloads.
  • thankyou.php – Download displays made consistent.
  • order-downloads.php – Download displays made consistent.
  • email-downloads.php – Download displays made consistent.
  • order-details-customer.php – Download displays made consistent.
  • email-order-details.php – Download displays made consistent.
  • email-order-items.php – Download displays made consistent.
  • email-addresses.php – Download displays made consistent.
  • order-details.php – Download displays made consistent.
  • my-account/orders.php – Action buttons moved to filter.
  • form-tracking.php – Improved error handling.
  • single-product-reviews.php – Fixed invalid markup.

Deprecated functions and methods in 3.2

  • Accessing internal meta keys from a CRUD object will throw a usage notice in 3.2.0.
  • Adding fees outside of the fees API will now throw a usage notice.
  • All cart properties have been deprecated and replaced with getter methods; the ones which trigger notices include taxes , shipping_taxes.
  • Some cart methods are no longer needed. remove_taxes won’t be needed because taxes are not calculated if the user is exempt. init is no longer used. get_discounted_price is no longer used because the logic has moved to WC_Cart_Totals.
  • WC_Query::search_post_excerpt is no longer needed or used. WordPress handles excerpt searches.
  • WC_Query::remove_posts_where is no longer needed or used. WordPress handles excerpt searches.

How we tested 3.2

3.2 beta was released on August 30th and remained in beta until the RC September 27th. During this time we tested internally, tested our own extensions and themes, did some managed updates for actual customers on staging sites to pick up on any conflicts or bugs before the public release, and tested the update on WooCommerce.com.

Things look stable but if you spot anything, please let us know on GitHub. Thanks to everyone who helped test 3.2!

We ❤ contributors!

A massive thanks to everyone in the community who have contributed, be that via issue reports, fixestranslation, testing, supporting other users or simply spreading the word.

mikejolley claudiosanches claudiulodro jeffstieler v18 kovshenin
bor0 ramiy WPprodigy adnanlimdiwala hjoelr josemarques
Umangvaghela nishitlangaliya DanReyLop MillerMedia thenbrent terence1990
franticpsyx pmgarman bekarice jaydeeprami gtritchie mjangstadt
jb000 ethitter iamdharmesh ragulka marcozink jostrander
kloon webspecnick paulwilde javorszky websupporter aristath
Ninos jconroy marcinbot Drivingralle jamesckemp gundamew
alisterscott ville6000 corsonr jdevalk Chouby tivnet
mihaigrigori rynaldos JPry aj-adl builtbylane jameskoster
iickoo nyordanov JeroenSormani mitraval192 EmilEriksen JimmyAppelt
opportus marian-kadanka willgorham Valks helgatheviking unfulvio
Nils-Fredrik scrobbleme saulfautley mikaelz nicoladj77 BrianHenryIE
jamesgol shakee93 EmranAhmed atimmer urosmil grosssmutttr
belcherj gfolin gedex farookibrahim SiR-DanieL jobthomas
JustinSainton shivapoudel