Today we’re excited to release WooCommerce 3.3 into the wild! 3.3 has been in development since October, and has had over 1581 commits from 80 contributors.

bionic-butterfly

3.3 is a minor update. All changes should be backwards compatible with sites running any version of WooCommerce since 3.0, but we do still recommend ensuring extensions and themes are compatible before upgrading by testing on a staging site, and making backups for peace of mind.

Orders screen redesign

WooCommerce 3.3 features a revamp of the Orders screen. It has been redesigned to be simpler and clearer while at the same time being more useful. This has been developed with backwards compatibility in mind, so extensions that add features to the Orders screen should continue working normally. You can read more about these changes here.

On Backorder stock status and stock management improvements

There’s a new stock status in town! Products can now have the “On Backorder” stock status. We’ve combined this with some improvements and automation to make the product stock management experience more intuitive. You can read more about these changes here.

Greater theme support and customization

We’ve improved the way WooCommerce stores look on themes that don’t declare WooCommerce support. This was done by rendering the store content inside of the theme’s post content area. This way the layout of the store will fit neatly with any sort of theme layout and the store will look great. This change only affects themes that don’t formally declare WooCommerce support. You should now be able to use WooCommerce with almost any theme from WordPress.org!

All themes get to take advantage of this next feature: You can now use the Customizer to set the number of rows and columns in the shop. Theme developers can set minimum, maximum, and default row/column settings when declaring theme support. Read more about these features here.

Image size improvements

You can choose and change the aspect ratio of the images in your shop using the Customizer. Themes can also set the image sizes when declaring WooCommerce support.

In addition, product thumbnails are now automatically regenerated. No need for a special plugin to regenerate images! This feature uses a new event queue that processes in the background. We will be able to use this sort of queue in the future for eliminating race-conditions caused by concurrent requests and for improved performance through background processing. Read more about these changes here.

Features for store owners

  • Product downloads are logged and can be analyzed and filtered. Read more about this here.
  • The `products` shortcode now has pagination and tag support.
  • Live preview of shop display settings in the Customizer.

Features for store builders and developers

  • Webhooks now use the CRUD design pattern we’re using in other classes. This is also the first area of the codebase to move to custom tables! Read more about this here.
  • New sample data for easily populating shops with demo content.
  • Added sandbox and live API details to the PayPal standard data, as well as an indication on the checkout to what mode is currently active. PayPal IPN email notifications are also now optional.
  • Ability to search in logs when the database logger is used.

Upgrading to 3.3

3.3 is a minor update and should be compatible with sites running any version of WooCommerce greater than or equal to 3.0. We still recommend testing and backing up prior to upgrading just to be safe.

Note: There are a few post-update database upgrade routines that need to run after updating. These may run for a while if you have a large amount of data in your 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.3

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

  • auth/form-login.php – Converted submit inputs to buttons.
  • cart/cart.php – Decoupled cart templating methods from WC_Cart class and converted submit inputs to buttons.
  • cart/mini-cart.php – Decoupled cart templating methods from WC_Cart class and converted submit inputs to buttons.
  • cart/shipping-calculator.php – Included city field by default.
  • checkout/form-coupon.php – Converted submit inputs to buttons.
  • checkout/form-pay.php – Converted submit inputs to buttons.
  • checkout/payment.php – Converted submit inputs to buttons.
  • checkout/review-order.php – Decoupled cart templating methods from WC_Cart class.
  • emails/customer-invoice.php – Improved default test for checkout page link.
  • global/form-login.php – Converted submit inputs to buttons.
  • global/quantity-input.php – Added aria-labelledby to quantity field.
  • global/wrapper-end.php – Made the Underscores theme wrappers the default.
  • global/wrapper-start.php – Made the Underscores theme wrappers the default.
  • loop/add-to-cart.php – Added add_to_cart_description method and aria-labels to cart buttons.
  • loop/loop-start.php – Use new loop functions.
  • loop/orderby.php – Refactored to work well on unsupported themes.
  • loop/pagination.php – Refactored a little to work well on unsupported themes.
  • loop/result-count.php – Refactored a little to work well on unsupported themes.
  • myaccount/form-add-payment-method.php – Improved wording and converted submit inputs to buttons.
  • myaccount/form-edit-address.php – Converted submit inputs to buttons.
  • myaccount/form-login.php – Converted submit inputs to buttons.
  • myaccount/form-lost-password.php – Converted submit inputs to buttons.
  • myaccount/payment-methods.php – Removed a message about new payment methods.
  • notices/error.php – Added role=alert for improved accessibility.
  • notices/success.php – Added role=alert for improved accessibility.
  • order/form-tracking.php – Converted submit inputs to buttons.
  • order/order-details-customer.php – Cleaned up and updated as part of Orders UI revamp.
  • order/order-details.php – New actions and a little refactoring.
  • order/order-downloads.php – Made the downloads table responsive.
  • single-product/add-to-cart/grouped.php – New hooks and added form action.
  • archive-product.php – Use new loop functions.
  • content-widget-product.php – Better action names.
  • product-searchform.php – Converted submit inputs to buttons.

Deprecated functions and methods in 3.3

  • wc_get_core_supported_themes has been deprecated since core now supports all themes.
  • WC_Product_Download::set_previous_hash has been deprecated since core is no longer using filename-based hashing to keep track of files.
  • WC_Product_Download::get_previous_hash has been deprecated since core is no longer using filename-based hashing to keep track of files.
  • WC_Admin_Webhooks::logs_output has been deprecated since logging is no longer done on the Edit Webhook screen.
  • WC_Admin_Webhooks::get_logs_navigation has been deprecated since logging is no longer done on the Edit Webhook screen.
  • WC_Customer_Download_Data_Store::update_download_id has been deprecated because download_id is now a static UUID and should not be changed based on file hash.
  • WC_Cart::get_item_data has been deprecated in favor of wc_get_formatted_cart_item_data.
  • WC_Cart::get_remove_url has been deprecated in favor of wc_get_cart_remove_url.
  • WC_Cart::get_undo_url has been deprecated in favor of wc_get_cart_undo_url.
  • WC_Post_Data::process_product_file_download_paths has been deprecated because no action is necessary on changes to download paths since download_id is no longer based on file hash.
  • WC_Webhook::get_delivery_log has been deprecated since webhook logs are stored using the logger.

How we tested 3.3

3.3 beta was released on December 12th 2017 and remained in beta until the RC on January 11th 2018. 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.3!

We ❤ contributors!

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

mikejolley claudiulodro claudiosanches kloon rodrigoprimo dechov
mikejolley claudiulodro claudiosanches kloon rodrigoprimo dechov
belcherj WPprodigy shivapoudel bor0 marcinbot stevegrunwell
belcherj WPprodigy shivapoudel bor0 marcinbot stevegrunwell
davefx AdamQuadmon ElectricFeet rnaby ughimire ragulka
davefx AdamQuadmon ElectricFeet rnaby ughimire ragulka
james-allan alexminza v18 JPry kraftbj unfulvio
james-allan alexminza v18 JPry kraftbj unfulvio
johndcoy vyskoczilova bsessions85 axelmm franticpsyx JeroenSormani
johndcoy vyskoczilova bsessions85 axelmm franticpsyx JeroenSormani
glagonikas MannyC seostudio MounirHamani kovshenin yratof
glagonikas MannyC seostudio MounirHamani kovshenin yratof
MillerMedia ryelle ramiy tiagohillebrandt mikalai-okun macbookandrew
MillerMedia ryelle ramiy tiagohillebrandt mikalai-okun macbookandrew
bekarice mensmaximus gedex tiagonoronha MechielCouvaras bobbingwide
bekarice mensmaximus gedex tiagonoronha MechielCouvaras bobbingwide
miniMAC lipemat tomedme ibndawood SiR-DanieL pathurs
miniMAC lipemat tomedme ibndawood SiR-DanieL pathurs
ryanr14 zachd dougaitken jimjasson ahmedofali garethallison
ryanr14 zachd dougaitken jimjasson ahmedofali garethallison
tyrann0us jamesckemp Chouby shoheitanaka willgorham n-dawson
tyrann0us jamesckemp Chouby shoheitanaka willgorham n-dawson
daigo75 kellychoffman parkinep soft79 jobthomas westi
daigo75 kellychoffman parkinep soft79 jobthomas westi
ChaseWiseman jameskoster pmgarman jdmadison iamchetanp jpkleemans
ChaseWiseman jameskoster pmgarman jdmadison iamchetanp jpkleemans
pmaiorana urosmil
pmaiorana urosmil