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.
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_themeshas been deprecated since core now supports all themes.
WC_Product_Download::set_previous_hashhas been deprecated since core is no longer using filename-based hashing to keep track of files.
WC_Product_Download::get_previous_hashhas been deprecated since core is no longer using filename-based hashing to keep track of files.
WC_Admin_Webhooks::logs_outputhas been deprecated since logging is no longer done on the Edit Webhook screen.
WC_Admin_Webhooks::get_logs_navigationhas been deprecated since logging is no longer done on the Edit Webhook screen.
WC_Customer_Download_Data_Store::update_download_idhas been deprecated because download_id is now a static UUID and should not be changed based on file hash.
WC_Cart::get_item_datahas been deprecated in favor of
WC_Cart::get_remove_urlhas been deprecated in favor of
WC_Cart::get_undo_urlhas been deprecated in favor of
WC_Post_Data::process_product_file_download_pathshas 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_loghas 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!