Full Answer
The legacy WooCommerce shortcode checkout rendered each step as a full server-side page load. GTM triggers and dataLayer pushes that depended on pageview events or DOM-ready conditions worked reliably because every checkout step produced a fresh page. The Blocks checkout changed this architecture — it renders the entire checkout flow inside a React component where steps transition through JavaScript state changes without reloading the page.
This breaks tracking in two specific ways. First, GTM pageview triggers never fire between checkout steps because there is no new page to view. Second, the order confirmation data that tracking plugins expect to find in the page HTML may not exist when their scripts execute, because the React component renders asynchronously after the initial page load. The result is that GA4 sees the visitor arrive at checkout but never records the purchase — the conversion event silently disappears.
The fix depends on your tracking method. Plugin-based tracking solutions need an update that specifically supports the Blocks checkout's event model. Custom GTM setups need triggers that listen for WooCommerce's JavaScript-dispatched events rather than pageview conditions. Server-side tracking avoids the problem at its root — the purchase event fires from the server when the order is created in the database, regardless of whether the customer's browser rendered a confirmation page or not.