Available for projects & agency overflow · Quick reply, from the person who does the work

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.

Describe my issue Send a message

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.

Related pages

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

origine
catalogue
extensions-premium (facultatif)
conserver (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

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.