Changelog

  • The WooCommerce 3.0.1 fix release is now available. You can download it from WordPress.org or as an automatic update in your administration panel.

    This release fixes issues reported since 3.0.0 launch on Github and the support forums. The full changelog is below.

    * Fix - Show catalog hidden products within grouped products.
    * Fix - Fade in the gallery in if no images are set or it's custom.
    * Fix - Use wc_deprecated_function in WC_Deprecated_Hooks so notices aren't output in ajax requests.
    * Fix - Added back the ability to include extra items to the System Status using the woocommerce_system_status_environment_rows filter.
    * Fix - Coupon category restrictions and limits for variations.
    * Fix - Allow shortcodes and HTML in variation descriptions like in 2.6.
    * Fix - Unset post date when duplicating products.
    * Fix - Show a sale price on variable products if on sale and all prices are the same.
    * Fix - Corrected download links when a product has multiple downloads.
    * Fix - Prevented potential errors if the product type was not posted for any reason on save.
    * Fix - Updated single-product/up-sells.php, loop/add-to-cart.php, loop/rating.php, checkout/form-billing.php, and content-product.php template version to 3.0.0.
    * Fix - Included clearfixes on billing and shipping field wrappers,
    * Fix - Fixed styling of logs table in some languages.
    * Fix - Fixed display of variation attributes on old orders.
    * Fix - Use placeholder text for external products add to cart button text if left blank.
    * Fix - Fallback to home URL if no shop page is set for system status security check for HTTPS.
    * Fix - For variations, pull tax status and sold individually from the parent since there is no UI to set this at variation level.
    * Fix - Moved cron emails to background processing to avoid multiple sends.
    * Fix - Wrapped structured data in a hidden element when added to emails.
    * Fix - Missing gateway information in queued emails.
    * Fix - Fixed a bug that caused pages to permanently reload if "Default customer location" was set to "Geolocate (with page caching support)".
    * Fix - When forcing shipping to billing, set the shipping fields in the order itself.
    * Fix - Check for invalid objects in WC_Register_WP_Admin_Settings.
    * Fix - Check for error object in wc_get_object_terms.
    * Fix - Removed slashes in shipping meta data on the order edit screen.
    * Fix - Prevented permalink rewrites for attributes with missing names.
    * Fix - Fixed saving of meta data when multiple extensions use the save_post action.
    * Fix - Allow search customers by ID in edit order screen.
    * Fix - Prevents session data overwriting customer data on login.
    * Fix - Fixed cross-sell column display and variation support.
    * Fix - Fixed variable product stock syncing on save.
    * Fix - Included try/catch wrapper to prevent issues with Select2.
    * Fix - Prevented a bug that deleted all variations when the product type was change from variable to simple.
    * Fix - Switched to WPDB to quicker update when syncing titles for variations.
    * Fix - Exclude deprecated properties when loading a customer object.
    * Fix - Fixed notices while trying to order again.
    * Fix - Fixed notices when $wpdb->prefix is empty.
    * Fix - Prevent errors when loading a product with an invalid download file types.
    * REST API - Fixed missing array declaration in CRUD controller.
    * REST API - Removed extra exclude, include and search parameters from taxes endpoint.
    * REST API - Fixed variation description formatting.
    * REST API - Fixed incorrect attribute check in products endpoint in Legacy REST API.
    * REST API - Allow variation image to be unset.

    If you spot any further issues, please report them to us in detail on GitHub so the development team can review – comments on this post are closed.


  • Today we’re excited to release WooCommerce 3.0 (previously 2.7), dubbed the “Bionic Butterfly”, into the wild! 3.0 has been in beta since December, development since August, and has had over 3000 commits from 115 contributors.

    Read on to find out what’s new!

    3.0 is a major update. As always, please ensure extensions and themes are compatible before upgrading, test on a staging site if you can, and make a backup for peace of mind.

    (more…)


  • WooCommerce 3.0.0 RC2 is available for testing. This fixes a bunch of issues from 3.0.0 RC1 which we’ve spent the last 2 weeks working on. Notable fixes include:

    • Fixed some edge case gallery issues such as galleries with no images, and zoom image sizes when flexslider is not used.
    • Fixed the 3.0 db updater to correctly set the outofstock term.
    • Fixed double add to cart issue on cart page when querystring contains add-to-cart.
    • Fix coupon removal in cart.
    • Added __sleep and __wakeup methods to data stores and data objects to avoid full object serialisation. Because of this, we were able to remove the special handling in email cron (since this is better), and remove the now defunct object caching in the data stores.
    • Prevent max on qty selectors being set to -1.
    • Improved default column definition in admin screens.
    • Fix to allow custom order item types from 2.6.
    • Fixed some bugs in the legacy API (using incorrect getters).
    • Various docblock/deprecation notice corrections.
    • Various RTL fixes.
    • Various fixes to prevent notices e.g. by casting floats when doing arithmetic.
    • Fixed API to return names instead of slugs in variation API.
    • Various REST API v2 schema and return type corrections (to match docs).
    • Removed timezone guesswork from set_date_prop method so offsets are correctly handled when the WP timezone setting is set to a UTC offset.

    The REST API v2 docs are also now live so be sure to check out what is now possible with 3.0.0 and the v2 API if you’re using it.

    To test WooCommerce 3.0.0 RC2, you can use our WooCommerce Beta Tester plugin or you can download the release candidate here (zip).

    Think you’ve found a bug? Please post in detail to Github.

    The final version of 3.0.0 is still due for April 4th 2017. Huge props to everyone who has sent feedback about this release so far or found bugs.


  • This was quite the week. A few days ago we announced the decision to reversion and release 2.7 as 3.0.0. This was due to finding a critical bug in the way the system handles timestamps, which wasn’t caught sooner, and requests from third-party extension developers for more testing time. At the same time we chose to adopt semantic versioning going forward to make releases clearer.

    Today, the release candidate for WooCommerce 3.0.0 “Bionic Butterfly” is available!

    (more…)

  • tl;dr: We’re re-versioning WooCommerce 2.7 as WooCommerce 3.0.0, and releasing this on 4th April 2017. We found a critical bug in the way the system handles timestamps, which wasn’t caught sooner, and have had numerous requests from third-party extension developers for more testing time, due to the scale of changes in this release.

    This past week we’ve been having several conversions about 2.7 both internally and with some 3rd party developers to get feedback about the new release, and to discuss the new CRUD system.

    From those discussions and from feedback in our RC/beta posts it was clear developers would like a little more time to test and would appreciate longer RC periods in the future. It was also requested that versions were more descriptive of what was actually inside the release.

    We also found a few issues specific to timezone handling and timestamps, which we felt would be better handled before release, simply because if we don’t do it now this could cause issues with method naming in future releases. Essentially, some developers need a way to reliable get UTC timestamps as well as dates according to the site’s timezone.

    To resolve this we’re working on a solution which accepts either a UTC timestamp, or an ISO8601 datetime string, and returns a DateTime object so timezone information can be retrieved if needed. This approach is not compatible with the get_date_x getters found in 2.7 beta.

    Given that the timestamp changes would prolong the release candidate anyway, we decided it was not too late to consider semantic version numbers. With that, the idea of 3.0.0 was born.

    Semantic Versioning (SemVer) going forward

    WooCommerce has, up to now, numbered it’s versions incrementally (2.0, 2.1, 2.2, 2.3 and so on) with those increments containing a mix of fixes, refactors, new features, and “breaking” changes. The actual numbering has no indication to what is actually going into a release, and like WordPress, those increments are treated equally.

    For example, the update from WordPress 3.9 to 4.0 was no more significant that the upgrade between 4.1 to 4.2. It’s just a number.

    We’ve had concerns from some developers that our versioning could be misinterpreted and, like WordPress, lacked real meaning.

    It’s a major release hiding under an inappropriate version number.

    This lead to an internal discussion about why we version how we do now (just to mimic WP), and what we could do instead. We decided to adopt SemVer.

    SemVer dictates that:

    Given a version number MAJOR.MINOR.PATCH, increment the:

    • MAJOR version when you make incompatible API changes,
    • MINOR version when you add functionality in a backwards-compatible manner, and
    • PATCH version when you make backwards-compatible bug fixes.

    Using this we hope that are version numbers better reflect the types of changes we’re making, and that there is increased confidence over patch and minor releases where we’re introducing changes but not affecting extensions in a negative way.

    3.0.0 will be a major update. Whilst we’ve taken every opportunity to make things backwards compatible (with deprecation notices), there are some known documented gotchas, and we have changed the fundamental way in which WooCommerce data should be accessed.

    3.1.0 will be a minor update in which one of the things we want to introduce is a new product importer. This is roadmapped on Github if you’d like to learn more.

    With Semver, if we did need to make a major change after 3.0.0, we’d put that change on hold until the next major (4.0.0) update.

    What will the 3.0.0 RC1 look like?

    3.0.0 RC, which should be tagged later in the week, will be very similar to 2.7 RC 1 with the addition of several fixes and these important changes;

    1. The versioning and @since properties will be relabeled to 3.0.0. If you have used version_compare statements in your code, they will still work since 3.0.0 is greater than 2.7.0 🙂 You can change these for clarity however.
    2. There will be a resolution to this critical timezone/timestamp issue which we want to resolve before release.  This changes the return type of get_date_x type methods from integer to DateTime and so will need to be handled in extensions if those getters have been implemented already from the 2.7 RC.
    3. Themes with 2.7.0 versioned template files may need to update those to 3.0.0 versions to prevent reports of outdated template files.

    When will 3.0.0 launch?

    We’re aiming to have the RC tagged in a few days allowing for ~3 weeks testing prior to final launch.

    The final launch date, if things go as planned, will be April 4th 2017. 

    This should be enough notice to do a final round of testing and to account for the changes highlighted further up in this post.


  • The release candidate for WooCommerce 2.7 “Bionic Butterfly” is now available!

    Shipping a release candidate (RC) means we think we’re done, but with hundreds of thousands of stores and so many plugins and themes which declare WooCommerce support, it’s possible we’ve missed something. We hope to ship WooCommerce 2.7.0 on Tuesday, March 14th but we need your help to get there!

    To test WooCommerce 2.7 RC1, you can use our WooCommerce Beta Tester plugin or you can download the release candidate here (zip).

    Since 2.7 is now in release candidate stage, only bug fixes will be made. No other changes should take place.

    Think you’ve found a bug? Please post in detail to Github.


    For more information about what’s new in 2.7, check out the Beta 1beta 2beta 3 blog posts. We also have some compatibility example posts and posts about our new features:


    If you haven’t tested WooCommerce 2.7 yet, now is the time!

    Developers, please test your plugins and themes against WooCommerce 2.7 as soon as possible. If you find compatibility problems, we never want to break things, so please be sure to post to Github so we can figure those out before the final release. You may also be interested in our known-issues wiki article here.

    You’ll also find some new docs on things such as the CRUD in the WIKI here.

    And if you’re a theme developer and want to enable the new gallery, see here.

    Translators, it is important than we translate 100% of the WooCommerce 2.7 strings so translations are downloaded automatically on update. Your help is most welcome!

    Store ownersread this helpful guide on preparing for the update and if you see any deprecation notices after updating don’t be alarmed; read here.


  • Today we tagged WooCommerce 2.7 “Bionic Butterfly” beta 3. If you’d like to find out whats new in 2.7, you can read more about 2.7 in our first beta post here and our second beta post here.

    Download WC 2.7 Beta 3

    (more…)


  • Today we tagged WooCommerce 2.7 “Bionic Butterfly” beta 2. It contains a whole host of bug fixes and is ready for testing! if you’d like to find out whats new in 2.7, you can read more about 2.7 in our first beta post here.

    Download WC 2.7 Beta 2

    (more…)


  • The WooCommerce 2.6.14 fix release is now available. You can download it from WordPress.org or as an automatic update in your administration panel.

    ~23 commits made it into this release fixing several issues and hardening the code in the API. The full changelog for 2.6.14 is below.

    * Fix - Ensure product exists in wc_update_product_stock.
    * Fix - Send emails using the site language.
    * Fix - Remove tilde typo.
    * Fix - Fixed notice in get_rating_count.
    * Tweak - Define arg and return data types, added extra descriptions, and correctly cast IDs in the Rest API.
    * Tweak - Handle custom error data in WC_REST_Exception.
    * Tweak - Display conflicted product ID when using a duplicate SKU via the API.
    * Localisation - Add Finnish defaults to the installer.

    If you spot any further issues, please report them to us in detail on GitHub so the development team can review – comments on this post are closed.


  • The WooCommerce 2.6.13 fix release is now available. You can download it from WordPress.org or as an automatic update in your administration panel.

    ~8 commits made it into this release fixing a few issues.

    The full changelog for 2.6.13 is below.

    * Fix - Demo store banner styling in 2017.
    * Fix - Removed default instructions from COD, BACS and Cheque gateways so displayed messages can be unset.
    * Fix - Made variation options update on first load.
    * Localisation - Added Romanian locale to the installer.

    If you spot any further issues, please report them to us in detail on GitHub so the development team can review – comments on this post are closed.