Block themes broke the selectors
The product grid of a modern WordPress theme is a block, not the old markup with a data-product_id on an add-to-cart button. Plugins that scrape the DOM see an empty page and report nothing, on a store that is selling fine.
HPOS moved the orders
With High-Performance Order Storage, orders no longer live in wp_posts. Any integration that reads the legacy tables sees a store with no sales, and fails quietly rather than loudly.
A plugin conflict is enough to lose the day
A cache plugin, a consent plugin, an optimiser that defers JavaScript: any of them can stop the browser event. The order is still in WooCommerce, GA4 never hears of it.