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.
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.
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
Extensionmenu item, as well as the
My Subscriptionstab, 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.
- We’ve unified the product shortcodes into one single, consolidated
productsshortcode which supports the options of all legacy product shortcodes.
- Like the search helpers introduced in 3.1, we’ve done the same for products. You can see our usage wiki here.
- We’ve added store street address, city and postal code to settings for use by plugins and services which need this data.
- Wrapping values in quotes will now let you use commas in the product CSV importer.
- If a fatal error occurs, WooCommerce will catch and log it to be viewed in WC > Status > Logs. This can be useful for debugging and support.
- We added a new option to control the maximum depth of categories shown in the product category widget; this was another user request.
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
- Some cart methods are no longer needed.
remove_taxeswon’t be needed because taxes are not calculated if the user is exempt.
initis no longer used.
get_discounted_priceis no longer used because the logic has moved to
WC_Query::search_post_excerptis no longer needed or used. WordPress handles excerpt searches.
WC_Query::remove_posts_whereis 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!