A new version of WooCommerce is due out this week (most likely today or tomorrow), so we’re going to take a look into what’s new and changed in WooCommerce 2.5 today. This version of WooCommerce has been in development for several months, as WooCommerce 2.4 was released August 10, 2015.

The first beta release was in November, but with the holiday sales season right in this release cycle, the beta and release candidate period was about 2 months. Beta 2 overhauled the way transients were stored (transients are a way of temporarily caching information) for much better performance and made some further template changes. Beta 3, release candidate 1, and release candidate 2 followed with mostly fixes and other small tweaks.

WooCommerce 2.5 Review: Overview

WooCommerce 2.5 includes some small quality of life changes for shop owners and administrators to improve store management, while adding some very useful developer tools and performance enhancements.

Most of the large changes in this version are developer-oriented, such as WP-CLI support, while the changes you’ll see in your admin and the frontend of your site are fairly small.

There are also several fixes in this version to make WooCommerce more performant and resilient to changes and different site configurations.

WooCommerce 2.5 Review: Admin Experience

Let’s start with how WooCommerce will look different when you log in. In terms of settings, you’ll notice one setting that’s been removed: shipping display mode. The choice was made to go with radio buttons for shipping method display exclusively rather than using a select / dropdown for methods, so this setting is no longer present.


WooCommerce 2.4 Shipping options

WC 2.4 Shipping options



WooCommerce 2.5 Review: WC 2.5 shipping options

WC 2.5 Shipping options


The tax settings have also been tweaked slightly. While there are no added or removed settings here, the tax UI is faster and uses a snappy ajax search for country codes now. For example, if you want to set a UK tax rate, you can enter UK in the “Country Code” column, and WooCommerce will search for “United Kingdom (UK)” to set the correct country code, which is GB (using this an example because I mess it up all of the time). Previously, country codes weren’t searchable, so you had to look up the correct code manually.

WooCommerce 2.5 also introduces an email table for email management so that the “Emails” settings tab is simplified. Previously, emails were listed as sub-sections under the “Emails” tab, and you could choose which email to edit from here, along with configuring settings.

Now the “Emails” tab is simplified into a table to show all emails in a list. A failed order email has been added for admins as well to notify you of a failed payment.


WooCommerce 2.5 Review: WC 2.4 email list

WC 2.4 Emails



 
WooCommerce 2.5 Review: WC 2.5 email list

WC 2.5 Emails


The email settings are now located below this table.

WooCommerce 2.5 Review: WC 2.5 Email Settings

WC 2.5 email settings

You can edit an email still by clicking its name or the “configure” icon in the table.

WooCommerce 2.5 Edit Email

WC 2.5 Editing emails

When viewing an order that still requires payment (such as an order with status “Pending Payment”), customers can easily view a “Pay” link from the My Account page. You can now access this link as an admin while viewing the order as well so it can easily be sent to customers:


WooCommerce 2.5 Review: WC 2.4 no pay link added

WC 2.4 View Order



WooCommerce 2.5 Review: WC 2.5 order pay link

WC 2.5 View Order


As a final admin change, you can now can search both parent / simple and variation SKUs in the admin when viewing your products. Previously, if you wanted to look a product up by SKU, you could only search for the parent product’s SKU. Now you can search for a specific variation’s SKU, and it will return the right product.

WooCommerce 2.5 Review: Frontend Changes

There are also some minor changes to the way your shop is displayed to customers to improve the shopping experience.

For variable products, the add to cart button would not be shown until a variation was selected. If you wanted the cart button to show up immediately, you had to set a default variation. In WooCommerce 2.5, the cart button will display and be disabled until a selection is made.


WooCommerce 2.5 Review: WC 2.4 variation display

WC 2.4 variable product



WooCommerce 2.5 Review: WC 2.5 variations display

WC 2.5 variable product


If you enable the terms and conditions checkbox at checkout, this will now be displayed before the “Place Order” button rather than after it.


WooCommerce 2.5 Review: WC 2.4 Terms Checkbox

WC 2.4 Accept Terms



WooCommerce 2.5 Review: WC 2.5 terms checkbox

WC 2.5 Accept terms


The terms and conditions box has also been added to the “pay” page for orders that are paid for after they’ve been placed, ensuring that all orders will have the terms and conditions available.

Finally, WooCommerce now enforces strong passwords for customer registration on the account and checkout page. This forces your customers to use a strong password before being able to register for an account on your site.

WooCommerce 2.5 Review: WC 2.5 strong passwords

WC 2.5 strong passwords

As I do a lot of testing with dummy passwords, I wanted to disable this on my test sites. If you’re looking to do something similar, here’s a snippet to do so (make sure you know how to properly add code to your site):

function remove_wc_password_meter() {
    wp_dequeue_script( 'wc-password-strength-meter' );
}
add_action( 'wp_print_scripts', 'remove_wc_password_meter', 100 );

WooCommerce 2.5 Review: Fixes and Tweaks

There are tons of fixes and tweaks in WooCommerce 2.5 that improve the overall performance of your site.

  • One of the changes I really disliked in WooCommerce 2.4 was that the checkout page removed some of its checks for appropriately formed JSON; from versions 1.6 to 2.4, WooCommerce would basically check the format of the data submitted by checkout to make sure it was in the right format. WooCommerce 2.4 removed this check under the assumption that plugins should not add invalid JSON (bad formatting such as stray HTML).
     
    While in an ideal world this is true, tons of plugins (even ones not related to WooCommerce) or themes broke the checkout with a “Syntax Error: Unexpected Token” notice. WooCommerce 2.5 fortunately fixes this checkout issue by adding malformed JSON handling.

  • When you enabled “verified reviews” for your products, WooCommerce had to store the verified review information somewhere. This was previously stored as a transient (a temporarily cached piece of data). However, once your product had a fair number of reviews (e.g., above 50), this would slow down product page loading. The function that retrieves verified reviews has been completely refactored for better performance, as these are now stored as post meta.

  • Transients were used to store some data about your product’s variations as well, and these have been refactored to avoid any slow-downs in your site’s loading.

  • If you created a coupon with a product category restriction for a parent category (let’s say music), coupons would not respect the category hierarchy — this restriction should extend to any children of that parent (let’s say “albums” or “singles”). WooCommerce now respects category hierarchy for coupons.

  • When a WordPress user is deleted, any orders they have placed now turn into guest orders.

  • WooCommerce will now use the product SKU for stock order notes instead of the product ID. Order notes are also added for manual email sends now as well.

WooCommerce 2.5 Review: For Developers

Finally, let’s take a look at some of the changes for developers in WooCommerce 2.5. First, the WooCommerce REST API has has added some new endpoints:

  • /products/shipping_classes to update product shipping classes.
  • POST, PUT, and DELETE for product categories and tags.
  • support for filtering products by tag, category, shipping class, and attribute.
  • tax and tax_class endpoints for setting tax rates.

WooCommerce 2.5 also includes PHP 7 support, so once your host upgrades, you’ll be completely ready to go.

There are several template changes, so be sure any themes or overrides are updated for version 2.5. There’s an extensive list in the beta announcement you can refer to.

WordPress doesn’t have a built in way to handle sessions (i.e., a user session where you store a cart or other user details), so WooCommerce and other eCommerce plugins have to build their own session handlers. WooCommerce 2.5 introduces a new session handler, which improves scalability and performance by storing data in a new custom table. The developer blog has further details on the session handler.

WooCommerce 2.5 also adds WP CLI support, which lets you execute and automate functions via the command line. This makes it easy to do things like add or update groups of products, edit orders, clear transients, or other functions, helping developers who manage several sites. The development blog has a great overview of some available commands.

WooCommerce 2.5 Review

WooCommerce 2.5 doesn’t make huge changes to the way you run your WooCommerce store, but it does add several small quality of life improvements for shop owners and managers. The ability to quickly view and manage emails is very nice, and I’m a fan of the minor frontend tweaks to the variable product and checkout pages.

The biggest changes in WooCommerce 2.5 are the things you don’t always see — the several fixes and performance improvements that went into this release, such as transients refactoring, a new session handler, making the checkout process more resilient, making product review display much faster, and PHP 7 support, all make WooCommerce faster, more dependable, and more scalable.

Developers also benefit from WP CLI support and new REST API endpoints, expanding the ways that developers can interact with WooCommerce stores outside of building companion plugins.

WooCommerce 2.5 overall is a nice refinement to WooCommerce, improving day-to-day management for both store owners and developers, while improving and optimizing key pieces of the plugin’s technical infrastructure.


Note: This post may contain affiliate links, which means we get a commission from the plugin, theme, or service provider if you choose to purchase. Regardless of this, we are committed to providing high quality, unbiased resources. Have more questions? See our affiliate policy. You can use the plain links below if you prefer that we not receive a referral commission:
Articles you may also like:

Posted by Beka Rice

Beka Rice manages the direction of Sell with WP content and writes or edits most of our articles to share her interests in eCommerce. Or she just writes as an excuse to spend more time jamming out to anything from The Clash to Lady Gaga. Who knows.

8 Comments

  1. Hi Beka! Great review! Looking forward to WOO 2.5! Simplification is always an improvement and it looks like that’s exactly what they did! Yay!

    Reply

    1. Indeed 🙂 simplification and performance improvements are always welcome!

      Reply

  2. Thanks Beka, appreciate your nice work with your articles!
    This one awesome to read before thinking of pushing the upgrade button!
    Cheers
    Pat

    Reply

  3. My new order email won’t show the image size I ve set. Copied the templates in my theme files, set show image true, image size arrat(128, 128) but the mails show the default size 32,32
    This happened after 2.5 update,
    Have any suggestion?

    Reply

    1. I’m pretty sure version 2.5 updated some email templates, so you may have to recopy them and re-apply your changes.

      Reply

  4. I did that! I said I have copied templates and modified.

    Reply

  5. I FOUND THE PROBLEM. IT’S IN WOOCOMMERCE TEMPLATES,
    ‘$image_size’ => array( 32, 32 ),
    REPLACED WITH
    ‘image_size’ => array( 128, 128 ),

    AND IT WORKS NOW!

    SO ‘$image_size’ IS NOT CORRECT, IT SHOULD BE ‘image_size’

    Reply

  6. Thank you for the write-up Beka. Woo Commerce certainly seems to have some serious adoption these days.

    Reply

Leave a reply

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