Guides
WooCommerce checkout
Does multi-step checkout work with WooCommerce Blocks?
Table of contents
It depends on the plugin. WooCommerce has two separate checkout systems, and a plugin written for one does nothing at all on the other. Some multi-step plugins are still classic-only; ours supports both. Here is how to tell which checkout you have, and what your options are on each.
WooCommerce has two checkouts
WooCommerce ships two different checkout implementations, and they extend in completely different ways.
The classic checkout is the original: a PHP-rendered form output by the [woocommerce_checkout] shortcode, with a long list of PHP action and filter hooks that plugins use to add, move or wrap fields.
The block checkout — the Checkout block — is a React application. Extending it means registering with its JavaScript APIs and its own integration interfaces, not the classic PHP hooks. WooCommerce maintains separate developer documentation for the cart and checkout blocks (opens in a new tab) for exactly this reason.
These are not two skins over one system. A plugin written for one does not partly work on the other — it does nothing at all, because the hooks it listens for never fire.
Which one does your store use?
Open Pages → Checkout in your WordPress admin and look at the page content.
- A shortcode block containing
[woocommerce_checkout]— you are on the classic checkout. - A block named Checkout, containing inner blocks for contact information, shipping address and payment options — you are on the block checkout.
As a rough guide, stores set up before late 2023 are usually classic, and stores set up since are usually block-based. But themes and setup wizards vary, so check rather than assume.
So does multi-step checkout work with blocks?
It depends entirely on the plugin. A good number of multi-step checkout plugins still require the classic checkout, though that is changing.
The reason so many lagged is effort. Splitting a checkout into steps means intervening deeply in how the form renders and validates. On the classic checkout that is well-trodden ground. On the block checkout it means building against a newer JavaScript API and shipping an actual block, which is closer to a rewrite than a port.
Support is a moving target — vendors add it release by release, and we added it ourselves in version 1.1.0. Any comparison table, including ours, can be out of date within a month.
So check the vendor's own current documentation before buying, and if it is not stated explicitly, ask them directly. "Compatible with WooCommerce" is not the same claim as "works with the Checkout block".
Where LWN Multi-Step Checkout stands
LWN Multi-Step Checkout supports both checkouts. Block checkout support arrived in version 1.1.0 and is the headline of the 1.1.x line; version 1.1.1 is current, released 30 August 2026.
The two are set up in different places, and it is worth being precise about which is which:
- Classic checkout — activating the plugin is enough. The stepper appears with sensible defaults, and you tune it from WooCommerce → Settings → Multi-Step Checkout, across six tabs: General, Style, Appearance, Text & Labels, Advanced and Block Checkout.
- Block checkout — you turn it on deliberately. One click in the Block Checkout tab places the LWN Checkout Steps block inside your checkout form, and switching it back off takes out exactly what it added. You can also add that block yourself in the editor. It is then configured from the block's own sidebar, with the step indicator updating live beside you as you change it.
Activation deliberately changes nothing on a block checkout. Rewriting a live store's checkout page should be your decision, not a side effect of installing an extension.
A few features remain classic-only, because they have no equivalent on the block checkout: the dedicated Login and Registration step, which WooCommerce's block checkout handles itself; the dedicated Coupon step, since the coupon field stays in the block order summary; the loading-animation styles; and swipe navigation between steps on phones. Progress is saved on both, but in the WooCommerce session on classic — so it survives across tabs — and in the browser tab on the block checkout.
If your plugin still needs the classic checkout
You do not need this for LWN Multi-Step Checkout any more. But if the plugin you have chosen is classic-only, the move is to replace the Checkout block on your checkout page with a shortcode block containing [woocommerce_checkout]. Do it on staging first.
- Go to Pages → Checkout and edit the page.
- Select the Checkout block and delete it.
- Add a Shortcode block and enter
[woocommerce_checkout]. - Update the page and place a full test order.
Test thoroughly afterwards. Payment gateways, shipping extensions and checkout field plugins can behave differently between the two checkouts, and some newer extensions target the block checkout first. Confirm that your gateways render, shipping rates calculate, coupons apply, and both order emails arrive.
Keep a note of the change. If you later hire someone to work on the store, "we deliberately use the classic checkout" saves them a confusing afternoon.
Should you switch at all?
Only if the classic checkout gives you something specific that you want, and you have tested that nothing else in your stack depends on the block version. A stepped checkout is no longer on that list of reasons, at least not with this plugin.
Arguments for staying on the block checkout are reasonable: it is where WooCommerce's development effort is going, it is the default for new stores, and some newer extensions support it first.
Arguments for the classic checkout are also reasonable: a far larger ecosystem of mature plugins, more hooks for customization, and years of accumulated documentation.
Splitting your checkout into steps is worth doing — but it was never worth breaking a working payment flow for, and now it does not ask you to. The WooCommerce multi-step checkout plugin is a settings change on either checkout, not a migration.