Changelog
Check out the latest releases from the WooCommerce project.
Subscribe to all release posts via our RSS feed.
-
Today we’re excited to announce WooCommerce 2.6 “Zipping Zebra” has been released into the wild. 2.6 has been in beta since the end of April, development for ~5 months, and has had over 1700 commits from 25 contributors.
This time round there has been a major focus on APIs, shipping, and account pages which ticks some items off of our 2016 core wishlist.
Introducing Shipping Zones
Shipping Zones are groups of locations to which you ship products. You can group multiple continents, countries, states, and zip codes into a ‘zone’ and then add shipping methods to each.
As an added bonus, methods supporting zones can be used as many times as you need, for example, you can now create multiple flat rates within a zone – something which was previously limited to one without an extension such as table rates.
We made a more detailed post about Shipping Zones which you can read here.
For 3rd party shipping methods, Shipping Zones are opt-in. Core shipping methods support zones, but 3rd party methods need to declare support. For developers, the shipping API docs are inside our wiki. If a method does not support zones, it will continue to work globally as it always has.
Users of the WooThemes Table Rate Shipping and Flat Rate Box shipping should install the latest versions of those extensions for compatibility. Zones will be migrated to the new system during the 2.6 upgrade routine.
The new WooCommerce REST API
We’ve released a new WooCommerce REST API based on the WordPress REST API. This means WooCommerce now uses the WP REST API scaffolding layer and follows the same standards meaning it can be extended by plugins to add new data points or authentication methods.
The new API supports orders, customers, products, coupons, taxes, reports, and webhooks, both individually and in batches. We’ll be extending this with additional endpoints in 2.7.
If you’re a developer, our REST API docs have been updated for the new API and can be read here.
Previous versions of the API (v1, v2, and v3) are still present in core and will continue to function as normal.
You can read more about the new API here.
Improved account pages
Older versions of WooCommerce had a single account page which listed all data; orders, downloads, saved cards etc. This was not very organised and could grow with extensions.
To fix this, we’ve built a new endpoint/tab based account page with sections you can navigate through.
You can read more about the new account page here.
AJAX cart page
The cart page operations now use AJAX (updating item quantities, removing cart items, applying coupons, and updating shipping options).
Read more about the AJAX cart here.
Everything else…
There have been lots of tweaks and smaller changes since 2.5, so the best place to look at these would be in our changelog and for adventurous developers, the comparison on Github.
To highlight a few of those changes:
- Developers will have access to our new Payment Tokens API which standardized the way in which tokens are stored and displayed. This wiki article explains usage for devs.
- There are now some on-hold status order emails.
- We’ve worked on our layered nav system in 2.6 adding new functionality (now you can filter products by ratings) and improving performance for all layered nav queries.
- We’ve moved custom term meta implementation to WP Term Meta which was introduced in 4.4.
- There is a new wc_get_orders() function to get order objects and ids instead of direct get_posts() calls.
- We’ve added the ability for shipping methods to store meta data to the order in the same way line items can.
Upgrading to 2.6
Some notes for people upgrading to 2.6. Aside from ensuring your extensions and theme are compatible and you’ve made backups:
- You’ll need to be running WordPress 4.4 or above – we’ve bumped the minimum requirement.
- If you’re running table rate shipping or flat rate box shipping authored by WooThemes, ensure you’re running the latest versions and the WC 2.6 data update will migrate any existing rates and zones.
- If you’re using Simplify Commerce you’ll be prompted to install the new version from WordPress.org as it is now a separate plugin and deprecated in WC core.
- The data upgrader prompt will run updates in the background. If your site is not accessible or password protected there may be a delay for the cron-based fallback to run.
Template Changes in 2.6
With most new releases, updates to template files are needed in order to add or change functionality. When we make a major change, the template version is incremented. Themes which bundle these templates may need to update them to reflect core.
The following template files had their versions bumped in 2.6.0:
- single-product/review.php – Added hooks to support the following new templates:
- single-product/review-rating.php
- single-product/review-meta.php
- order/order-details.php – Fix to only get purchase note if product exists.
- myaccount/my-account.php – New action hooks to support tabbed navigation and the following new template files:
- myaccount/dashboard.php
- myaccount/downloads.php
- myaccount/view-order.php
- myaccount/payment-methods.php
- myaccount/orders.php
- myaccount/navigation.php
- myaccount/my-downloads.php – Deprecated.
- myaccount/my-orders.php – Deprecated.
- myaccount/form-add-payment-method.php – Added tabbed naviation.
- myaccount/form-edit-address.php – Added tabbed naviation.
- myaccount/form-edit-account.php – Added tabbed naviation.
How we tested 2.6
Since April 22nd 2016 we’ve had 4 beta versions and 2 release candidates giving ample warning to developers to test. We’ve also posted on Twitter, Facebook, and our dev blog.
According to Github API, RC1 was downloaded ~250 times, and our betas a total of 1,951 times by testers.
Internally we’ve been testing the RC on WooThemes.com. We have also tested all WooThemes extensions for compatibility, and had our 3rd party devs do the same.
Thanks to everyone who contributed, tested, and translated this release and we hope you all enjoy using it!
-
The release candidate for WooCommerce 2.6 “Zipping Zebra” is now available.
RC means we think we’re done, but with thousands of users and hundreds of plugins and themes with WooCommerce support, it’s possible we’ve missed something. We hope to ship WooCommerce 2.6.0 on Tuesday, June 14th, but we need your help to get there.
Since beta 4, we’ve made a handful of fixes and tweaks you can view here. Notable changes include:
- Postcode normalization on save for taxes and zones
- Added blockui when variations are being retrieved via ajax
- Some tweaks to our new API during docs review
- A simple cost field on local pickup
- Hiding empty taxes by default (filterable)
- Revised the new My Account content templates (this affects themes who tested beta 4)
- Added blank slates to our post type screens
Think you’ve found a bug? Please post in detail to Github.
To test WooCommerce 2.6 RC1, you can use our WooCommerce Beta Tester plugin or you can download the release candidate here (zip).
For more information about what’s new in 2.6, check out Beta 1, beta 2, beta 3 and beta 4 blog posts.
In related news, Simplify Commerce is being deprecated in core. Bundling gateways within WooCommerce core is not ideal as it means we need to do core updates to patch gateway issues, when it would be more efficient to patch the gateway itself. When you update you’ll be prompted to install the replacement Simplify Commerce plugin instead which is now hosted on WordPress.org and supports WooCommerce 2.6+
Additonally, we’ll be promoting a few other gateways during the setup wizard which again can be downloaded from WordPress.org. These include:
All free and open source.
If you haven’t tested WooCommerce 2.6 yet, now is the time!
Developers, please test your plugins and themes against WooCommerce 2.6 before next week. 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.
Translators, it is important than we translate 100% of the WooCommerce 2.6 strings so translations are downloaded automatically on update. Your help is most welcome!
Store owners, read this helpful guide on preparing for the update.
-
WooCommerce 2.6 Beta 4 has been tagged and is now available from Github. You can download beta 4 here
Since beta 3, we’ve made a handful of fixes and tweaks you can view here. Notable changes include:
- Using a hook to include account page navigation
- Removed unused POST code in shipping template.
- A fix for fields on checkout set to 0 being seen as empty.
- Allow COD to set on-hold status if the order contains downloads.
- Added additional hooks/triggers in our AJAX cart page for plugins to use.
- Tweaked hash generation and the wc_clean function.
Beta testing
If you’d like to help test, you should download the release from Github or you can use our beta testing plugin.
Remember you can also help translate 2.6 on the development branch on translate.wordpress.org.
Updated release schedule
To allow a little more time for testing, and a good week between RC and final release, the dates are as follows:
- Release Candidate 1 -Tuesday 7th June 2016
- 2.6.0 Final – Tuesday 14th June 2016
-
WooCommerce 2.6 Beta 3 has been tagged and is now available from Github. Since beta 1 there have been a number of fixes, tweaks and commits (159) so be sure to give it a whirl.
Changes since beta 2
We have worked on several bug fixes and hook renames since beta 2 which I won’t go into detail listing (see the list of changes here), but the larger items include:
- Allowed product constructors to throw exceptions if invalid. If you are using wc_get_product() to get product objects, this change won’t affect you. If you’re calling classes directly, this could cause an exception if the product doesn’t exist.
- Wrapped currency symbols in a span to allow styling or replacement.
- Allow failed orders to be edited.
- Switched to print_r for generating cart session hashes.
- Stopped caching non-valid coupons.
- Changed range symbol used for taxes and shipping.
- Improved certain aspects of Shipping Zones UI such as breadcrumbs.
- Tokenization form fixes and styling.
- If there are no shipping methods setup, don’t prompt for shipping at checkout.
- Fixed shipping method unregistration.
- Stopped create and update webhooks firing at the same time for products.
Beta testing
If you’d like to help test, you should download the release from Github or you can use our beta testing plugin.
Remember you can also help translate 2.6 on the development branch on translate.wordpress.org.
Release schedule
Pending feedback, RC1 will be tagged on the week of the 30th May with the final release coming a week later. We’re almost there!
-
WooCommerce 2.6 Beta 2 has been tagged and is now available from Github. Since beta 1 there have been a number of fixes, tweaks and commits (183) so be sure to give it a whirl.
Changes since beta 1
- Allowed country exclusion, rather than just inclusion, in ‘sell to’ setting
- Improved a bunch of localisation strings
- Added functions to give shipping method instances consistent rate IDs
- Added hooks to form-pay.php
- Improved lost password flow
- Show payment dates on order screen
- Added filters for system status
- Improved token credit card forms
- Made zones, methods and classes screens more consistent based on feedback
- Moved all DB updates into a new background updater routine
For everything else, see the comparison here.
Testing
If you’d like to help test, you should download the release from Github.
You can also use our beta testing plugin.
Remember you can also help translate 2.6 on the development branch on translate.wordpress.org.
-
For the past few months, we’ve been quietly working on something we think will be a big part of the future of WooCommerce: WooCommerce Connect.
Connect is a new architecture for integrating services with WooCommerce. We’re taking advantage of a SaaS-style Automattic-hosted server to do the heavy lifting and have created a new Calypso-style interface. On the users’s end, they’ll just see a streamlined experience:
- No additional extensions to install
- No API keys to remember
- No subscription keys to copy and paste
We’ve built the foundation and added our first service. This first iteration supports real-time USPS shipping rates for stores based in the United States. Now, we’d like to welcome you to the testing phase.
Join us in building the future of WooCommerce
Release Highlights
This first Alpha release of WooCommerce Connect works with the WooCommerce 2.6 Beta and with Jetpack to bring hassle free USPS shipping to WooCommerce Shipping Zones.
Since this is an alpha version, there’s a lot we plan to add, change and enhance. Please take care – this early pre-release code should not be used on production sites.
At this time, WooCommerce Connect is delivered as a feature plugin, and the grand plan is to roll out Connect into a future WooCommerce core release.
For developers, this is an great opportunity to:
- see the future of WooCommerce development
- see examples of incorporating React into WooCommerce administration
- see how we’re using JSON schemas provided by the WooCommerce Connect servers to drive the layout and composition of the forms for shipping services – making adding features much less likely to require plugin updates
- see examples of how to extend the WP REST API and Shipping Zones in WooCommerce 2.6
Alpha Testing
Alpha is out today. Subsequent alphas will be released if needed and we’ll post on this blog if this happens.
If all goes to plan, Beta will begin during June 2016.
If you’d like to help test, sign-up to be a tester – we’d love to hear from you!
-
WC 2.6 codename “Zipping Zebra” has been tagged and is ready for testing. This is our 2nd major release of 2016 and has around 900 commits in total. You can download beta 1 here.
Release Highlights
2.6.0 has a host of improvements and new features to dramatically improve shipping. Shipping Zones are now part of core. This means you’ll now be able to have instance based shipping methods, multiple flat rates, and much much more without the use of extensions. For developers, the shipping API docs are inside our wiki.
The My Account shortcode/pages have been restructured to be tab based. This keeps things organised and allows devs to add more tabs if needed.
You can read more about the tabbed my account page here.
The cart page operations now use AJAX (updating item quantities, removing cart items, applying coupons, and updating shipping options) which you can read about and see in action here.
We’ve worked on our layered nav system in 2.6 adding new functionality (now you can filter products by ratings) and improving performance for all layered nav queries.
Developers will have access to our new Payment Tokens API which standardized the way in which tokens are stored and displayed. This wiki article explains usage for devs.
We’ve also released a new version of the WooCommerce REST API, based on the WordPress REST API, which you can read about here.
Other features developers and users will be interested in:
- We’ve moved custom term meta implementation to WP Term Meta which was introduced in 4.4.
- Added new wc_get_orders() function to get order objects and ids instead of direct get_posts() calls.
- We’ve added the ability for shipping methods to store meta data to the order in the same way line items can.
- We’ve made wc_create_new_customer() pluggable.
- We’ve added > 100 new currencies based on https://en.wikipedia.org/wiki/List_of_circulating_currencies, and Bitcoin.
Template changes in 2.6.0
The following template files had their versions bumped in 2.6.0:
- single-product/review.php – Added hooks to support the following new templates:
- single-product/review-rating.php
- single-product/review-meta.php
- order/order-details.php – Fix to only get purchase note if product exists.
- myaccount/my-account.php – New action hooks to support tabbed navigation and the following new template files:
- myaccount/downloads.php
- myaccount/view-order.php
- myaccount/payment-methods.php
- myaccount/orders.php
- myaccount/navigation.php
- myaccount/my-downloads.php – Deprecated.
- myaccount/my-orders.php – Deprecated.
- myaccount/form-add-payment-method.php – Added tabbed naviation.
- myaccount/form-edit-address.php – Added tabbed naviation.
- myaccount/form-edit-account.php – Added tabbed naviation.
Release Schedule and beta testing
Beta 1 is out today (April 22nd). Subsequent betas will be released as needed and we’ll post on this blog if this happens.
If all goes to plan, Release Candidate 1 will be tagged during May 2016.
If you’d like to help test, you should download the release from Github. We posted a nice little write-up on beta testing here which should get you started. Please read that and jump right in!
If you’re like to help translate 2.6, you’ll find it on the development branch on translate.wordpress.org.
Thanks to all of our testers and contributors.
-
During the development of WooCommerce 2.1 (Back in Feb 2014) we knew that one day WordPress would have it’s own REST API, but the demand was so great for such a thing in WooCommerce we had to roll our own.
We’ve learned a lot from this process and our API is now widely used, but given recent developments surrounding the actual WordPress REST API, and since it is now part of WordPress core (since version 4.4) we started work to replace ours with what is available in WordPress.
2.6 will contain this new API, and will require WordPress 4.4 or higher.
-
The WooCommerce 2.5.5 fix release is now available. A total of ~6 commits made it into this release fixing a notice in WP Admin during product creation which affected some users.
As an aside, we’re currently working hard no a new API/CRUD classes in WooCommerce core to support Orders, Coupons, and products. Once complete this will make things such as saving products more testable via unit tests making issues like the above one much less likely to slip through the net!
The changelog for 2.5.5 is below.
* Fix - Prevent notice when unsetting terms on product edit screen. * Tweak - zeroclipboard fallback for firefox on system status report. * Tweak - Check valid product ID is provided on add_to_cart shortcode.
You can download it on WordPress.org or as an automatic update in your administration panel.
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.5.4 fix release is now available. You can download it on WordPress.org or as an automatic update in your administration panel.
A total of ~29 commits made it into this release fixing several minor issues and making some small tweaks.The biggest fix in 2.5.4 was utf8mb4 support for our database table schema (thanks JJJ). This was causing new users to have missing woocommerce_terms tables after install.
The changelog for 2.5.4 is below.
* Fix - Fix table creation when using utf8mb4 charset. * Fix - Have wp_insert_post return WP_Error when creating our coupon, so the is_wp_error check can catch it. * Fix - Clear sale price on save if sale is no longer valid. * Fix - Round refund values to ensure refunds can be performed. * Fix - When getting coupon by code used twice, latest should be queried. * Fix - CLI improvements for setting up variations and deleting orders. * Fix - Allow big selects when getting variations to support larger queries. * Fix - Trigger webhook when user edits addresses on frontend. * Fix - Hide shipping row when calculator is disabled, and shipping costs are hidden. * Fix - Unset deleted attributes when updating products. * Tweak - Update date for paid orders during non-manual updates only. * Tweak - wc_get_page_permalink - if the page ID is not set, redirect home instead to prevent white screens. * Tweak - Remove log dir from system status report. * Tweak - When sorting by date, fallback to ID. * Tweak - Rename pay link for clarity. * Tweak - Provide a fallback message if copying to the clipboard fails in system status report.
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.