Fixing Missing WooCommerce Emails and Delayed Renewals: Set Up a Real Cron Job
Ever had order emails go missing or subscription renewals delayed on your WooCommerce store?
You’re not alone; this is one of the most common issues store owners face, and it often comes down to one thing: WP-Cron.
Let’s break down what’s happening and how to fix it properly.
What’s WP-Cron and Why It Fails?
WordPress uses something called WP-Cron to schedule tasks like:
- Sending order confirmation and renewal emails
- Updating inventory
- Checking for plugin updates
- Processing scheduled sales
However, unlike a real system cron job, WP-Cron doesn’t run on a fixed schedule.
Instead, it runs only when someone visits your website.
So if your site has low traffic or aggressive caching, those scheduled tasks can get delayed — or never run at all.
That’s why you might see renewal reminders stuck or emails not being sent.

The Simple Fix: Use a Real Cron Job
The best way to ensure everything runs smoothly is to disable WP-Cron and replace it with a real server cron job.
Here’s how:
Step 1: Disable WP-Cron in WordPress
You’ll need to tell WordPress to stop using its built-in cron.
To do that, edit your wp-config.php file and add this line above the line that says /* That's all, stop editing! Happy publishing. */:
define('DISABLE_WP_CRON', true);This prevents WP-Cron from running automatically on every page load.
Step 2: Set Up a Real Cron Job on Your Server
Now you’ll create a system-level cron job to trigger WordPress tasks at regular intervals (for example, every 5 minutes).
Most hosting providers let you manage cron jobs from cPanel, Plesk, or command line (SSH).
Here’s the command you need to add:
*/5 * * * * wget -q -O - https://yourwebsite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Explanation:
*/5 * * * *= runs every 5 minuteswget -q -O -= quietly fetches the page> /dev/null 2>&1= hides output (keeps logs clean)
You can adjust the timing to your preference — every 5 minutes is usually perfect for WooCommerce.
Step 3: Test It
Once you’ve added the cron job:
- Place a test order or manually trigger a renewal.
- Check if order emails arrive without delay.
- Visit WooCommerce → Status → Scheduled Actions to confirm tasks are running on time.
If you see tasks marked as “Completed” regularly - you’re all set!
Bonus Tip: Monitor Cron Performance
Use a plugin like WP Crontrol to:

- View all scheduled tasks
- Manually run cron events
- Detect and fix stuck jobs
It’s a great way to stay in control of what’s happening behind the scenes.
Final Thoughts
By setting up a real cron job, you’ll ensure your WooCommerce store runs like clockwork - no more missing emails, delayed renewals, or failed scheduled actions.
It’s a small setup change with a huge reliability boost for your online store.
Need help setting up cron jobs or optimizing your WooCommerce site?
At WPConsults, we specialize in WordPress speed, reliability, and automation fixes.
Get in touch with us and let’s keep your store running flawlessly.
Discover more from WpConsults
Subscribe to get the latest posts sent to your email.
