Why Apple Pay Skips Your WooCommerce Purchase Event (and How to Fix It)
Express-wallet buttons like Apple Pay and Google Pay on WooCommerce’s block checkout often complete a sale without firing the standard purchase event your analytics and ad pixels listen for, so those orders go untracked. Digital wallets now handle about 53 percent of global e-commerce payments, so this isn’t an edge case. The block checkout renders in React rather than the old PHP thank-you page where classic tracking hooked in. The reliable fix is server-side: capture the order from WooCommerce’s order lifecycle on your server and send the purchase event to GA4, Meta, and Google Ads from there.
Why express-wallet orders vanish from your tracking
The purchase event your pixels wait for is tied to a page that express wallets never load.
Classic WooCommerce tracking has always leaned on one moment: the order-received, or thank-you, page. When a shopper completes checkout, that page loads, and your GA4, Meta, and Google Ads tags fire the purchase event there. Apple Pay and other express wallets short-circuit that moment entirely. The shopper taps the wallet button, authenticates on their device, and the order completes through a JavaScript flow that may never load the page your tracking depends on.
According to Worldpay, digital wallets now handle about 53 percent of all global e-commerce payments, more than credit and debit cards combined. So this gap doesn’t sit at the edges of your data. It sits right in the middle of it.
Express-wallet buttons such as Apple Pay can complete a WooCommerce sale without ever loading the thank-you page where the classic purchase event used to fire, leaving the order untracked.
This isn’t an edge case, it’s the majority
The wallets bypassing your tracking are the same ones your store is being told to promote.
The scale is the uncomfortable part. Business of Apps puts Apple Pay at roughly 785 million users and about 14.2 percent of online consumer payments, and Juniper Research counts about 5.2 billion digital wallet users globally in 2026, roughly 60 percent of the world’s population. A single untracked wallet path can therefore hide a meaningful slice of real revenue.
Here’s the thing: stores are actively pushing the very buttons that break tracking. Baymard Institute reports that express payment options can lift mobile conversion by 20 percent or more, and with around 70 percent of carts abandoned, one-click wallet flows are exactly what merchants are racing to add. You’re optimizing for the path your analytics can’t see.
You may be interested in: Self-Hosted vs Managed: Which WooCommerce Event Pipeline Architecture Fits Your Store in 2026
Why the block checkout changed the rules
The shift from PHP templates to React quietly moved the ground your tracking stood on.
This got worse with a platform change most stores barely noticed. WooCommerce’s React-based Cart and Checkout blocks have been the default for new stores since version 8.3, and the classic shortcode is on a deprecation path. The block checkout renders in JavaScript rather than the old PHP thank-you page template, so tracking that hooked into that template no longer fires the way it used to. Express wallets simply expose the problem first and most often.
| Where the purchase event comes from | Client-side (thank-you page) | Server-side (order lifecycle) |
|---|---|---|
| Fires on an express-wallet checkout | Often not | Yes |
| Depends on the React block rendering a page | Yes | No |
| Survives ad blockers and script blockers | No | Yes |
| Captures the order reliably | Inconsistent | Yes |
WooCommerce has shipped the React-based Cart and Checkout blocks as the default since version 8.3, moving stores off the PHP shortcode that client-side tracking depended on.
The fix: capture the order, not the page
Stop waiting for a page to load and start listening to the order itself.
The reliable answer is to stop depending on the browser. Instead of firing the purchase event when a page loads, capture it from WooCommerce’s order lifecycle on your server, for example when an order transitions to processing or completed, and send it onward to GA4, Meta, and Google Ads from there. The order is the source of truth, and the order always exists, whether or not a thank-you page ever rendered.
Transmute Engine⢠is built to do exactly this on WordPress: it captures the order server-side from WooCommerce’s own lifecycle and sends a complete purchase event to your analytics and ad platforms. The inPIPE layer keeps the click IDs and campaign data attached so the recovered conversion stays attributed to the ad that earned it.
Capturing the order from WooCommerce’s server-side order lifecycle is the method that survives the block checkout and express wallets, because the order exists even when the thank-you page never loads.
You may be interested in: Self-Hosted vs Managed: Which WooCommerce Event Pipeline Architecture Fits Your Store in 2026
Setting it up on WooCommerce
Four moves take you from page-dependent tracking to order-based truth.
First, persist click IDs and campaign parameters on landing so attribution survives to checkout. Second, hook the order lifecycle rather than the thank-you page, treating the order’s transition to a paid status as the conversion. Third, send the purchase event server-side to GA4, Meta, and Google Ads with the order value and click IDs attached. Fourth, reconcile against WooCommerce orders so your tracked conversions match the orders actually in your store.
Done this way, an Apple Pay tap that used to disappear becomes a fully attributed purchase, and your reporting finally matches the revenue sitting in your WooCommerce admin.
Key Takeaways
The short version for your next tracking review.
- Express wallets skip the thank-you page: Apple Pay can complete a sale without firing the page-based purchase event.
- It’s a majority problem: digital wallets now handle about 53 percent of global e-commerce payments.
- The block checkout made it worse: React rendering replaced the PHP thank-you page tracking relied on, default since 8.3.
- The order is the source of truth: it exists even when no thank-you page loads.
- Capture server-side: hook the WooCommerce order lifecycle and send the purchase event from your server.
Express-wallet buttons on the block checkout finalize payment in a JavaScript flow that can skip the thank-you page where the classic purchase event fired. If your tracking listens for that page load, the order never registers as a conversion.
It can. The block checkout renders in React instead of the PHP shortcode, so any tracking that hooked the old thank-you page template may no longer fire reliably, and express-wallet paths are the most likely to slip through.
Capture the order on your server using WooCommerce’s order lifecycle, for example when an order reaches processing or completed, then send the purchase event to GA4, Meta, and Google Ads server-side, independent of the browser.
Not for wallet-heavy stores. With wallets at roughly 53 percent of payments and express buttons bypassing page events, client-side tracking alone leaves a large share of orders invisible. Server-side capture closes the gap.
References
- Worldpay. E-commerce payment statistics, 2026. https://www.ringly.io/blog/ecommerce-payment-statistics-2026
- WooCommerce. “Customizing Cart and Checkout,” WooCommerce documentation, 2026. https://woocommerce.com/document/woocommerce-store-editing/customizing-cart-and-checkout/
- Business of Apps. Apple Pay statistics, 2026. https://cropink.com/apple-pay-statistics
- Juniper Research. Digital wallet user forecasts, 2026. https://www.ringly.io/blog/ecommerce-payment-statistics-2026
- Baymard Institute. Cart abandonment and conversion lift, 2026. https://baymard.com/lists/cart-abandonment-rate
If your WooCommerce reporting no longer matches your order count, see how Seresa recovers the conversions express wallets hide.