# 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.

- Source canonique : [https://allaux.fr/en/wordpress-woocommerce/mise-a-jour/version-majeure-woocommerce](https://allaux.fr/en/wordpress-woocommerce/mise-a-jour/version-majeure-woocommerce)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Direct answer

> Open WooCommerce, Status before starting anything: the Database section shows whether the database version matches the plugin version. After the update WooCommerce displays a notice asking you to run the database update; run it and wait for it to finish before taking orders again. If anything looks wrong, WooCommerce, Status, Logs keeps a record of the operation.

## 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

1. **Full backup** — Files and database, before touching anything, with particular attention to order-related tables.
2. **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.
3. **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.
4. **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.
5. **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.

## The point of no return

> It’s updating in production without having validated the full checkout on the test environment first. A payment plugin that breaks afterwards, in production, halts online sales until fixed, a direct cost that can’t be recovered retroactively.

## Checking after the update

> A test order with every active payment method, shipping cost calculation, confirmation emails sent, and correct order display in the admin, whether HPOS is enabled or not.

## Related pages

- **Migrating WooCommerce to High-Performance Order Storage** — How to enable HPOS on an existing shop without losing order history. ([/wordpress-woocommerce/migration/stockage-haute-performance-commandes](/wordpress-woocommerce/migration/stockage-haute-performance-commandes))
- **Moving to cart and checkout blocks** — What switching to Gutenberg blocks changes for plugins customising the checkout. ([/wordpress-woocommerce/migration/blocs-panier-commande](/wordpress-woocommerce/migration/blocs-panier-commande))
- **Checking plugin compatibility before an update** — The method to know whether a plugin will survive the move to the new version before clicking "update". ([/wordpress-woocommerce/mise-a-jour/verifier-extensions-avant-mise-a-jour](/wordpress-woocommerce/mise-a-jour/verifier-extensions-avant-mise-a-jour))
- **WooCommerce payment issue** — Diagnosing a payment method that fails or stopped working after an update. ([/wordpress-woocommerce/probleme-paiement](/wordpress-woocommerce/probleme-paiement))

## FAQ

### Should HPOS be enabled at the same time as the major version update?

No, these are two separate decisions. HPOS is enabled voluntarily in WooCommerce’s advanced settings, with a sync mode keeping the dedicated tables and wp_posts aligned during the transition. I generally prefer separating the version update from enabling HPOS, to isolate causes if something goes wrong.

### Will my old cart and checkout shortcodes stop working?

No, shortcodes remain supported as a fallback after the switch to blocks. It’s even possible to convert a block back to its shortcode version from the block toolbar if a customisation still depends on it.

### Why check payment plugins first?

Because a catalogue or display issue leaves the shop working in a degraded state, while a broken payment plugin blocks every sale until fixed.

### Does a WooCommerce plugin compatible with an old version stay compatible with the next major version?

Not necessarily. Every major version can deprecate or remove hooks the plugin relies on. Compatibility needs rechecking at every major update, not just at first install.
