WooCommerce 3.1 has landed

Today we’re excited to release WooCommerce 3.1 into the wild! 3.1 has been in development since April, and has had over 1600 commits from 84 contributors.

Read on to find out what’s new!

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

CSV Import/Export

In the past, moving product data in and out of WooCommerce has required either premium importer plugins, or messing with WordPress XML files. We’ve tried to address this in 3.1 with our new CSV import/export solution which we hope will improve the experience for new users coming to our platform.

Our new importer supports CSV files and all built-in core props, as well as custom meta data if dealing with strings. Extensions can add columns and props of their own or to support more advanced data. Fields can be mapped by the user after uploading the CSV file.

Unlike our old Product CSV Import Suite extension, all product types, including variations, are dealt with in the same CSV file. The importer can also update existing products by ID and SKU (merge), or it can create new products instead.

The exporter let’s you choose which pieces of information you’d like to export (also includes meta data), and limit the export to certain product types.

Both tools use AJAX to prevent timeouts by exporting and importing in batches, and both can be started from the main Products screen.

We have usage and developer documentation on our wiki.

Manage your woo.com extension licenses in WooCommerce core

In an effort to improve the user experience for updating extensions purchased from woo.com, the “helper” (the code responsible for validating licenses and checking for updates) has been merged into WooCommerce core.

It’s lightweight and will be added to the already existing “extensions” screen in admin, and should really help our customers ensure that their premium plugins are kept up to date with new functionality.

Search helpers: WC_Order_Query class

For developers, we’ve added some new search helpers for orders to allow you to query orders by multiple props. Usage is explained here.

As an example, you could query all orders from a specific date range for users named John with the following code:

$orders = wc_get_orders( array(
    'billing_first_name' => 'John',
    'date_paid' => '2016-01-01...2016-12-31`,
) );


Everything else

  • We’ve made the “terms and conditions” checkbox on the checkout slide out the terms page contents inline, rather than just linking to it.
  • In 3.0.x, when going to pay for an order assigned to a customer you’re presented with a pretty unfriendly “invalid order” message. We’ve improved this in 3.1. Now, you’ll either see a useful message if the order is not yours, or you’ll see a login form if not yet logged in.
  • oEmbeds (e.g. to show videos) were previously non-functional when used in the product short description. With 3.1 they are supported!
  • You can now set stock statuses for variations in bulk from the edit product screen.
  • A small improvement when updating users manually in admin; you can now use the “Copy from billing address” button to populate the shipping address from the billing address in one click.
  • Setup wizard improvements:
    • A domestic shipping zone will be automatically created for your defined base country to make setting up shipping a little more streamlined.
    • If using a non-WooCommerce theme, you’ll have the option to one-click install the Storefront theme if you want it.
      -If you’re in the US you’ll get the option to install the WooCommerce Services extension which provides, amogst other things, USPS rates and shipping labels.

Upgrading to 3.1

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

Template file changes in 3.1

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.1:

  • cart/cart-empty.php – Added a wc_empty_cart_message function to handle the message displayed in a hookable manner.
  • cart/cart-shipping.php – Added a variable so shipping calculator is only shown on the first row when showing multiple packages.
  • cart/cart.php – Use get_max_purchase_quantity and fixed some logic.
  • cart/mini-cart.php – CRUD support.
  • checkout/terms.php – Support added for inline term display.
  • single-product/product-attributes.php – Added make_clickable.
  • single-product/product-image.php – Added data-caption support.
  • single-product/product-thumbnails.php – Added data-caption support.
  • single-product/rating.php – Using new wc_get_rating_html function.
  • single-product/review-rating.php – Using new wc_get_rating_html function.

Deprecated functions and methods in 3.1

The following functions are deprecated (not removed) in 3.1:

  • WC_Order_Data_Store_CPT::get_orders – Use wc_get_orders and the new search helpers.
  • WC_Order_Item_Meta – This class was actually deprecated in 3.0.0 but a notice was not added. wc_display_item_meta should be used instead.

How we tested 3.1

3.1 beta was released May 31st (~4 weeks ago) as was in beta for 2 weeks before we pushed out 2 release candidates. During this time we tried to iron out as many bugs as possible, whilst still maintaining updates for 3.0.x.

Additionally, for the first time, our team did some managed updates for actual customers on staging sites to pick up on any conflicts or bugs before the public release.

Thanks to everyone who helped test 3.1.

A huge thanks for our contributors!

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


20 responses to “WooCommerce 3.1 has landed”

  1. Does this mean that the following paid-for extensions are no longer needed (in addition to the T&C’s one)?

    WooCommerce Customer / Order CSV Export
    Customer/Order/Coupon CSV Import Suite
    Product CSV Import Suite

    Or will they still be required in some way where they have functionality over and above what is now in core?

    1. We included a product importer. Not an order importer.

      1. Thanks for the reply Mike.
        so the paid extension ‘Product CSV Import Suite’ is no longer needed?
        Also, does this mean the ‘WooCommerce Customer / Order CSV Export’ extension is not longer needed as well, or is that still needed for the customer Export part?

        1. CSV product suite may be needed based on your workflow only, but again, we only handle products. Not customers and orders.

          1. Are there plans for an order csv export? Many smaller shops do not need a full-bledge finance integration but something simple be good enough. (BTW, Chapeau on the product csv import/export!)

          2. Not yet. The importers/exports are being targeted at new users and I think importing orders is way less common that with products, since products aids with first time setup and management. We’ll revisit in the future based on feedback and as our importer/exporter develops.

  2. Jake Phillips Avatar
    Jake Phillips

    The product import/export is a really nice function, thanks for adding it!

    Along the same lines, will it ever be possible to utilize this type of import/export for subscription data in the future? We run a subscription website and pulling out subscription specific information/fields would be extremely useful.

    Thanks as always for the fantastic work!

    1. I’m not sure if there are plans for it yet, but it could in theory be extended to support other data types and extensions.

  3. Reblogged this on rafsuntaskin and commented:
    First time in the contributor list 😀

  4. Patrik Avatar


    Sorry, but the new inline terms functionality on the checkout page is really not very user friendly imo.

    My terms page is really long and that small scroll window that appear now is horrible to use. And let’s not talk about the mobile experience. And it doesn’t parse the Visual Composer Short Codes. Those are output as normal text and even if that is out of your control, we are now stuck with that. you should at least have left the option to keep the old link. Please tell me that you did that and that I just cant find that setting?

  5. jwardzala Avatar

    I had WooCommerce 3.0, WooZone and Storefront theme. I uses the Amazon insane import in Woozone. Everything was great. I Updated to 3.1 and all the shop gallery images disappeared. The individual product page images are fine. It is just the thumbnails. I tried syncing just in case but they are still all gone. Help please. I rent the site out to a customer.

  6. Great upgrade, excellent work by adding CSV Import/Export function.

    Thank you!

  7. Good job.. I like the upgrade. by adding CSV Import/Export function, it makes more sense….My opinion

  8. bildmanufakturwackernah Avatar

    Hey Mike, I am now after removing the update helper a bit lost. I did a purchase of plugin for a guy who has no credit card so I purchased it for him. How the hell does he get updates as no connection is active as before with helper plugin? He asked me were put store the key for that plugin after WC 3.1?

    1. Contact the helpdesk for license troubles please.

  9. webtailken Avatar

    Where is the Import function?

    1. Product screen in backend.

  10. I upgraded to 3.1.1, everything works fine. The only thing i’m having trouble with is the ajax loader gif at checkout. When I click place order the ajax loader does not show, but when I click place order again. it shows.

Leave a Reply

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