Before getting into the changes included in this release, let’s highlight a few housekeeping items:
We’re returning to a bi-weekly release of the plugin. This will help us get fixes and improvements out quicker for testing and previews so that we can respond to feedback quicker.
Increased emphasis and positioning in communications around this being a feature plugin. Practically this means that while we aim for the feature plugin being stable for use on WooCommerce stores, it is also the source of bleeding edge features and blocks that we are considering for eventual inclusion in WooCommerce core.
This effectively means that some new things that show up in the feature plugin might not land in WooCommerce core as is (or ever!) depending on the feedback and results from the increased exposure they get in the plugin release. However, we want to balance that with exposing previews of in progress work so that stores, merchants, and extension developers can try them out and provide us feedback to help inform the direction we take.
We hope this improved messaging helps guide stores and merchants with making the appropriate decisions for how they use this plugin in their stores.
With that out of the way, let’s get on to what is packed in this release!
Cart and Checkout blocks!
A significant amount of effort was spent in the last 5 months or so in building these blocks and we’re excited to reveal them in this release for previewing by merchants and stores.
The blocks are functional and you can replace the current shortcodes for cart and checkout to power your cart and checkout flows using the blocks. However, there are some limitations that you’ll want to be aware of before you make the switch, or try things out on your store.
You can read more about the Cart and Checkout blocks in this dedicated post we’ve written for them.
We’re really looking forward to getting feedback on these new blocks!
Other updates (worth reviewing)
You can read the full changelog for this release in the plugin listing, or you can take a look at the release pull request. The release pull request is something new we’re trying to serve as a single point of reference for releases. It also contains some more detailed testing steps for changes that can be used by folks that want to do their own tests before updating a site to this version.
Here’s a few highlights of changes that made it into this release worth noting:
Introduction of a new status for orders (“draft”) – this is done to help support some of the changes with the Checkout block.
We’re reasonably confident it will eventually make its way to core in its current iteration however we don’t recommend doing any development against this status because the blocks using it (and thus related API changes like this) are still being evaluated. But it’s being mentioned now in case any third party developers have already implemented a custom order status similar to this. If so, you may want to evaluate this change and ensure there are no conflicts (and if there are, bring them to our attention).
It is important to note that these draft orders “expire” after 24 hours. “Expire” is in quotes because we start the cleanup on a scheduled Action scheduler task every 24 hours which in turn kicks of a series of batched deletes until all expired draft orders are deleted.
If you do anything custom hooking into orders that depends on them being present in the DB, you probably are already hooked into the
delete_post action (which we fire on this cleanup).
Introduction of a new Reserved Stock class and database table to prevent race conditions during checkout for products with low stock on busy stores. Again, this was sparked by work on the checkout block but also addresses an issue that has been wrestled with in Woo core. In this case, there is a pending pull being evaluated for merge to WooCommerce core. In the meantime, the changes are implemented in the plugin (and will be pulled out when the core update is merged).
All “Product Grid” type blocks now default to 3 rows instead of one for the initial setting. This includes the following blocks: Handpicked Products, Best Selling Products, Top Rated Products, On Sale Products, Products by Attribute, Products by Category, Products by Tag, Newest Products and All Products.
If you have any of these blocks (except All Products) in use on your site, and you never changed any of the default settings for the block, then it will update to be 3 rows instead of 1 row for the rendered products. However, if the block was saved to your content with settings changed, then the rendered content will not be affected. So you will want to double-check your blocks after update. More details in this pull request.
HTML editing is no longer supported in several blocks. It was an oversight that most of the blocks supported this when it doesn’t make sense to include that mode for blocks (which could result in a broken block).
All Products block has a few improvements including:
- updating the sort select dropdown preview when the default is modified in the settings for the block.
- an error notice is shown when a customer tries to add a product to the cart if the product is out of stock or is sold individually and there is already an instance of that product in the cart.
Filter blocks have a few improvements including:
- The Price Filter block has better handling around prices that are configured to include taxes in displayed prices and/or configured to save taxes included in the price when entered in the product editor. Prior to the work in this release, depending on how things were configured, filtering by price could result in unexpected results because the queries on the backend were based on what’s in the db. In this release the results should be consistent with what you expect no matter how your taxes are configured with product prices.
- The Active Filters block now reflects the type of relation being queried for selected filters. This gives more visual cues to shoppers for understanding the product results
- The Attribute Filters block now includes a dropdown display style which works with either and or or type queries.
- You can also now optionally display an “Apply Filter” button on the Attribute Filters block.
- The Featured Product block will now update the url on the button when the featured product is changed.
- The Product Categories List block now has an option for showing Category images with the categories (for the list type view).
Whew! We really hope you find all these changes useful!