o

Cronjob.deGuides › WooCommerce

Setting up a WooCommerce cronjob: fixing stuck orders

When orders get stuck in "Processing", confirmation emails never arrive or subscriptions are not renewed, it is almost always the same cause: the Action Scheduler never gets its turn. This guide gives it a fixed interval.

Why at all

The Action Scheduler waits for visitors

WooCommerce handles almost everything after the purchase through the Action Scheduler: advancing order status, restoring stock, sending mail, renewing subscriptions, generating reports and exports. But the Action Scheduler has no clock of its own. It rides on WP-Cron – and WP-Cron only starts when somebody opens your shop.

In a low-traffic shop this produces the classic complaint: an order arrives at three in the morning, the confirmation email goes out at nine when the first visitor opens the site. With subscriptions it is worse – a renewal nobody triggers leads to a failed payment.

On top of that the Action Scheduler only processes a limited batch per run. Once a backlog builds up it takes many runs to clear it – and each of those runs needs another visitor. A fixed interval from outside breaks that cycle.

URL to call
https://ihr-shop.de/wp-cron.php
Recommended interval
every minute
Tested with
WooCommerce 8.x, 9.x, 10.x
Sufficient Cronjob.de plan
For a shop the one-minute interval from Cronjob.de Plus is the right choice. The free plan with five minutes works, but delays every order by up to five minutes.

Setup

Step by step

The AI does it faster

You do not have to transfer any of this by hand. Paste this guide – or the one for your own system – into the assistant, and Cronjob.de fills in address, method, schedule and headers. Where something is unclear it asks instead of guessing. At the end you see what was entered and create the job with one click.

Included in the free plan at no extra cost. You will find it after signing in under "Cronjobs" → "Create with AI".

  1. Disable WP-Cron in wp-config.php

    Add the following line to wp-config.php above the line saying "That’s all, stop editing". WordPress then no longer checks on every page view – which saves noticeable processing time on a shop.

    define( 'DISABLE_WP_CRON', true );
  2. Look at the backlog in the shop

    Open WooCommerce › Status › Scheduled Actions. "Pending" shows how many tasks are waiting. In a healthy shop that is a handful. If there are thousands, you have found the reason for the stuck orders.

  3. Check the address

    Open https://your-shop.com/wp-cron.php in a browser once. A blank white page is correct. An error usually means a security plugin such as Wordfence or a rule in .htaccess is blocking it.

  4. Create an account at Cronjob.de

    Registration takes a minute and is free. The first 14 days run on the Unlimited plan – so the call log shows you immediately whether the backlog is shrinking.

  5. Create a cronjob on a one-minute interval

    Enter the address and select every minute. More often achieves nothing: WordPress sets a lock on start that holds for 60 seconds by default.

    * * * * *

    You can enter this expression at Cronjob.de exactly as it is – the schedule field understands crontab notation. But you do not have to know it: simply click the schedule together instead.

  6. Switch on notifications

    Enter an email address under notifications. For a shop this is the most important step: a stalled Action Scheduler costs orders, and otherwise you only find out from the customer.

What the five fields of an expression like */5 * * * * mean is explained in the crontab reference – with examples and the most common pitfalls. You can build the expression in the crontab generator.

Verification

Is it actually running?

The check is in WooCommerce › Status › Scheduled Actions: the "Pending" number has to fall, and "Complete" has to show fresh timestamps a minute apart. The Cronjob.de call log shows the same minutes with status 200 and the runtime.

FAQ

Common questions about WooCommerce

Why are my orders stuck in "Processing"?
Because the step that advances them sits in the queue as a scheduled action and nobody processes it. Once the Action Scheduler runs on a fixed interval again the backlog is cleared – usually within a few hours.
Is the free plan enough for a shop?
It works, but delays every step by up to five minutes. For a shop with a few orders a day that is bearable. As soon as subscriptions, payment providers with callbacks or shipping services are involved, we recommend the one-minute interval.
I have thousands of pending actions. What now?
Set up the fixed interval first, then watch. The Action Scheduler processes a limited batch per run but clears the backlog reliably. If the number does not fall after an hour, a single faulty action is usually stuck and re-queuing itself.
Do I also need the WordPress guide?
No, this one covers everything. The difference is the interval: WordPress on its own copes well with five minutes, a shop does not.
Does this work with caching plugins?
Yes. wp-cron.php is not cached by the usual caches. Just make sure a security plugin or firewall is not blocking the file – that is the most common cause of error 403.
What about maintenance mode?
In maintenance mode most plugins intercept every request, including this one. Exempt wp-cron.php there, otherwise everything piles up during maintenance.
Is your server rejecting our calls? Error 403 almost always comes from a firewall, a security plugin or directory protection – not from your script. All our calls carry the fixed identifier Cronjob.de in the user agent. Ask your host for an exception for it; that is more reliable than allowing IP addresses, because ours can change. Addresses and details in the FAQ.

Create your cronjob now

Create an account, enter the address, click the schedule. Five cronjobs are free forever, the first 14 days run on the Unlimited plan.

Start for free See pricing

More guides

Official documentation of WooCommerce

The details about WooCommerce come from their own documentation, as of September 2026. Please check there whether anything has changed since. WooCommerce is a trademark of its respective owner. This guide comes from Cronjob.de and has no business relationship with that provider.