Updating WooCommerce to a major version
HPOS, cart and checkout blocks, hook deprecations: what recent WooCommerce major versions change and the order of checks before updating an active shop.
Two recent major changes, as examples
WooCommerce major versions aren’t just fixes: they can change how orders are stored or how key shop pages are built. Two recent developments illustrate this well. High-Performance Order Storage (HPOS), out of beta and declared stable in WooCommerce 8.2 in October 2023, moves order data from the wp_posts table to dedicated tables. Cart and checkout blocks, default on new installations since WooCommerce 8.3 in November 2023, replace the historical [woocommerce_cart] and [woocommerce_checkout] shortcodes with Gutenberg blocks, with the shortcodes still supported as a fallback.
I won’t detail either topic here: each has its own switching method, covered on the dedicated pages for migrating to HPOS and moving to cart and checkout blocks. This page covers the general method to apply to any WooCommerce major version update, whether HPOS and blocks are involved or not.
Why a WooCommerce update breaks a shop
- A payment or shipping plugin that reads order data directly from wp_posts instead of going through the WooCommerce API, and was never updated to work with HPOS
- A checkout customisation built on the old shortcodes, losing its styling or behaviour once the page switches to blocks
- A hook deprecated or removed between two major versions, used by a plugin or bespoke development that nobody has rechecked since
How I update WooCommerce on an active shop
-
Full backup
Files and database, before touching anything, with particular attention to order-related tables.
-
Priority check on payment plugins
I check payment and shipping plugin compatibility first: they’re what fully blocks a shop if they break, unlike a cosmetic plugin.
-
Test environment with the full checkout
I duplicate the shop on a test environment and place a full end-to-end order through to payment before signing off on the new version.
-
Checking checkout customisations
If the cart or checkout was customised on the old shortcodes, I check its behaviour after the update, particularly if the shop also switches to cart and checkout blocks.
-
Update in production
Once testing is validated, I update WooCommerce on the live site during a low-traffic window, and place a check order immediately after.
Related pages
-
Migrating WooCommerce to High-Performance Order Storage
How to enable HPOS on an existing shop without losing order history.
-
Moving to cart and checkout blocks
What switching to Gutenberg blocks changes for plugins customising the checkout.
-
Checking plugin compatibility before an update
The method to know whether a plugin will survive the move to the new version before clicking "update".
-
WooCommerce payment issue
Diagnosing a payment method that fails or stopped working after an update.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.