WooCommerce Blocks (Cart & Checkout) compatibility
Subscription products render correctly in WooCommerce's new block-based Cart and Checkout. Recurring price, signup fee, trial period, anchor date and discount tier all appear in the block UI without theme overrides.
Prerequisites
- WooCommerce 8.3+ (the WC Blocks package was merged into WC core; older standalone WooCommerce Blocks plugin is not required).
- Your store pages use the block versions: Page → Cart contains a
woocommerce/cartblock, Page → Checkout contains awoocommerce/checkoutblock. - A theme that supports the Gutenberg block editor (any modern block-based theme; classic themes work as long as the cart/checkout pages were saved with the blocks).
In the Cart Block
- Item subtotal shows the recurring price ("€19 every month") next to each subscription item.
- Signup fee is rendered as a separate line ("One-time signup fee: €25") when present.
- Trial period shows as a small note under the price ("First month free").
- Discount tier, if any, is shown as a struck-through original price plus the discounted one ("€19 → €15 first 3 months").
- Order summary at the bottom of the block separates "Today's total" from "Recurring total".
In the Checkout Block
- The order summary panel mirrors the Cart Block breakdown (signup, recurring, trial, discount).
- Subscription products force account creation at checkout — the plugin filters
woocommerce_checkout_registration_enabledwhen the cart contains a subscription. The block respects this and shows the password field. - Payment method picker shows only the gateways that support tokenisation; non-tokenising gateways are hidden via
woocommerce_available_payment_gateways. - The Place order button reads "Subscribe" instead of "Place order" when at least one item in the cart is a subscription. Customisable via filter (see Hooks).
Subscription product pages
The single-product page is fully block-aware. The price block (woocommerce/product-price) calls WC_Product::get_price_html(), which the plugin overrides for subscription products. So the price block automatically prints "€19 every month / Cancel any time" without you adding any subscription-specific block.
Known edges
- Mini-cart block shows the recurring price but truncates trial and signup-fee notes for space. Full breakdown appears on the full cart page.
- Express checkout buttons (Apple Pay, Google Pay, Stripe Link) work for subscription items as long as the underlying gateway supports recurring tokenisation. See the Stripe doc.
- Custom checkout blocks from third parties may not render subscription-specific notes. Test before going live.
Relevant hooks
aswc_cart_block_item_data— filter the per-item data passed to the Cart Block REST endpoint.aswc_checkout_block_place_order_label— filter the "Subscribe" button label.aswc_subscription_price_html— change the HTML returned by the price block for subscription products.