Action Scheduler Stuck: The Queue Behind WooCommerce Emails
Emails delayed, renewals stalled, thousands of actions pending. How Action Scheduler works, why it stalls, how to read its screen, and how to make it reliable.
Writing
60 write-ups from production, newest first. Each one is a problem hit on a real project and how it was diagnosed and fixed.
Emails delayed, renewals stalled, thousands of actions pending. How Action Scheduler works, why it stalls, how to read its screen, and how to make it reliable.
Customers charged twice or two orders for one purchase. How the checkout creates orders, the retries and webhook overlaps that duplicate them, and the fix.
A gateway is enabled and absent from the checkout. The decision tree: block support, availability rules, currency and country, SSL, JavaScript errors, caching.
What Google needs from a WooCommerce product page to show price, availability, ratings and returns in results: what WooCommerce emits, the gaps, and the fix.
No shipping options at checkout when rates are configured. Zone matching order, class conditions, the shipping cache that hides fixes, and live-rate failures.
Orders come in and stock does not move, or moves twice. When WooCommerce reduces stock, what interrupts it, the held-stock timer, and how to fix and reconcile.
The honest case for and against moving from Shopify to WooCommerce, and the migration steps that preserve products, customers, orders and rankings.
The checkout is the page a cache cannot help. Where WooCommerce checkout time goes, the scripts and cart fragments that slow it, and the fixes that work.
How to change a WooCommerce store that is taking money without breaking it: a staging mirror, gateway sandboxes, a pre-deploy test list and rollback.
Why WooCommerce order emails land in spam or vanish, the SPF, DKIM and DMARC records that fix it, and how to move store mail off the web server.
Payments succeed in Stripe but WooCommerce orders stay on hold. How the webhook flow works, why signatures fail, and a diagnostic that finds the break fast.
How abandoned cart recovery works in WooCommerce, what heavy plugins cost in checkout speed, and a lean build using the checkout block and transactional email.
A working checklist for moving a live WooCommerce store to HPOS: what breaks, the queries to grep for, how to test on staging, and how to roll back.
WooCommerce 10.8 cart block returning the wrong shipping rate when two zones overlap on one postcode? Why the picker grabs the wrong zone, and the fix.
WooCommerce checkout block placing the same order twice and charging cards twice? Here is why the second submit fires and the idempotency fix that holds.
WooCommerce Analytics dashboard showing zero orders after enabling HPOS? Here is why the lookup tables never rebuilt and the WP-CLI fix that restores it.
WooCommerce checkout block ignoring your validation hook? Here is why classic filters silently skip the block and the fix that actually blocks bad orders.
WooCommerce custom order status emails silently stopped after HPOS migration? Why the transition hook misses, and the fix that restores notifications.
WooCommerce Stripe Link not autofilling in the Checkout Block? Here is why saved cards never appear and the exact fix for the Payment Element mount.
WooCommerce orders complete but stock levels never drop? Here is why HPOS plus page caching hides the bug and the exact hook order that fixes it today.
WooCommerce 10.8 manual orders not reducing stock after a status switch to processing? Here is the hook rename and the one-line fix that restores it cleanly.
WooCommerce refund button greyed out on HPOS order edit screen after 10.8? Here is why the capability check fails and the action filter fix that works again.
WooCommerce cart block goes empty after a guest logs in mid-checkout? Here is what corrupts the session merge during login and the fix that restores items.
WooCommerce Product Collection block Add to Cart button clicks but nothing happens after WC 10.8? Here is the missing store binding and the JS fix that works.
Custom order status registered with register_post_status disappears after WooCommerce HPOS migration. Here is why and the exact filter that brings it back.
WooCommerce block-based order emails silent after WordPress 7.0? Why the template loader breaks, and the fix to get transactional emails firing again.
WooCommerce 10.7 checkout block hiding your custom payment gateway? Here is why the Blocks integration class fails and the exact registration that fixes it.
WooCommerce product gallery zoom and lightbox dead after WordPress 7? Here is the script enqueue change that silently breaks it and the fix that brings it back.
WooCommerce Stripe throwing 'PaymentIntent already captured' on manual capture or order edit? The root cause, and the handler that stops the double capture.
WooCommerce 10.x block emails sending {site_title} and {order_number} as literal curly-brace text? Here is why the placeholder pass is skipped and the fix.
WooCommerce HPOS bulk action shows 'Updated' but order status never changes? Here is why the legacy hook fires on the wrong table and the action fix that holds.
WooCommerce throwing an invalid nonce error on add to cart after your page cache expires? Here is why cached nonces break and the ESI fix that actually holds.
WooCommerce Filter by Attribute block returning empty results on HPOS stores? Here is the index rebuild and lookup table fix that gets filters working again.
Headless Next.js calling /wp-json/wc/store/v1/cart and hitting CORS preflight failures? Here is the Nonce, Cart-Token, and origin fix that actually works.
WooCommerce 10.7 my-account/orders and edit-address returning 404 after update? The rewrite priority moved. Here is the flush and registration fix that works.
WooCommerce 10.7 short description editor missing from product admin? HPOS shifts the meta box registration timing. Restore it with one filter and a hook.
WooCommerce HPOS order search by customer email returning empty? The legacy postmeta query is bypassed. Add a custom filter against the orders table.
WooCommerce Block Checkout custom field not saving to the order after submit? Register a Store API extension and server hook. Full working PHP and JS.
WooCommerce Apple Pay button missing from the Checkout block? Fix the domain registration, payment request feature, and cart eligibility in minutes.
WooCommerce REST API returns 401 unauthorized after WordPress 6.9 update? Fix Basic Auth, application passwords, and Authorization header passthrough fast.
WooCommerce Action Scheduler jobs stuck in pending or in-progress? Clear the queue, fix the runner, and stop subscriptions and emails from silently breaking.
WooCommerce Cart block quantity stepper not responding to taps on iOS Safari mobile after the 10.5 update? Here is the touch event bug and a clean fix.
WooCommerce tax is not calculating in the Checkout Block after WooCommerce 10.7? Fix the address sync, tax class mapping, and Store API cache properly.
WooCommerce Action Scheduler tasks stuck on in-progress and never completing? Reset the claim, fix the cron, and unblock background jobs with working code.
WooCommerce Subscriptions Health Check helps surface missing renewals and broken auto-renewal states. Here is how I use it before revenue leaks compound.
WooCommerce Subscriptions 8.6.1 fixes renewal mode bugs on HPOS stores after plan and gateway switches. Here is the safe audit and repair path today.
WooCommerce Stripe checkout stuck in a 3D Secure authentication loop? Fix the redirect_url, payment_intent confirmation race, and webhook with code.
WooCommerce variations not saving in the admin product page after the WooCommerce 9.7 update? Fix the silent AJAX failure and nonce error with working code.
WooCommerce coupon not applying on the checkout block? Fix the silent validation failure, missing apply_coupon hook, and Store API rejection with code.
WooCommerce order confirmation email not sending after checkout? Fix the failed action scheduler, SMTP fallback, and the email template hook with code.
WooCommerce Checkout Block hiding shipping rates at the address step? Fix the broken store API call, session handle, and shipping zone match with code.
WooCommerce throwing "Sorry, this product cannot be purchased" at checkout? The eight real causes and the working fix for each, with WP-CLI debug code.
WooCommerce Subscriptions renewals failing silently after a Stripe or HPOS update? Fix the scheduled action, webhook gap, and SCA retry logic with code.
WooCommerce Add to Cart AJAX button spinning forever or not responding? Fix broken cart fragments, jQuery conflicts, and the page cache rules with code.
WooCommerce product filters slow on 5,000+ products? How to speed up layered navigation, attribute queries, counts and archive pages without guesswork.
WooCommerce Stripe webhook signature mismatch throwing 400 errors after the plugin update? Here is why it happens and how to fix it without disabling checks.
WooCommerce 10.7 disables HPOS sync on read by default. If your plugins still write to posts tables, here is the fix path before order data drifts safely.
WooCommerce mini cart not refreshing after AJAX add-to-cart in block themes? Here is the exact cart_fragments fix with working code for WooCommerce 9.
WooCommerce Checkout Block showing no payment methods after 9.x? Fix missing Stripe, PayPal, and COD options by enabling block support and cache rules.
WooCommerce HPOS breaks custom order queries using WP_Query or postmeta. Here's the exact fix with working code for WooCommerce 8.7+ stores.
Fixed price for a defined scope, on live sites, with a rollback path. Agencies and in-house teams welcome.
Hire me for WooCommerce