I learned an important lesson about WP-Cron, the easy way. A plugin developer I was working with said an update was released and I should see it any minute now. I waited, and waited, and waited…
After a few days of not seeing the update (it wasn’t my top priority) I downloaded the WP Crontrol plugin to see what’s up. WP Crontrol is a plugin that allows you to see all the scheduled jobs WordPress will run. One of those jobs is to check for plugin updates every 12 hours. To my surprise I saw about 300 various jobs waiting to run. At first I thought, oh no, one of the plugins on the site has a bug. But then I noticed an error at the top:
There was a problem spawning a call to the WP-Cron system on your site. This means WP-Cron events on your site may not work. The problem was: Unexpected HTTP response code: 403
I contacted WPEngine (the website host) and they did their thing, setup an Alternate Cron and all was well. They couldn’t tell me what went wrong or why WP-Cron stopped working. At the same time, the staging site and all other websites on WPEngine still work fine.
Luckily, that site only depended on WP-Cron for plugin updates and WordPress update notices. As a matter of fact, I even logged into the site when it wasn’t working and didn’t notice the lack of plugin update notices! If this had been a site depending on payment subscriptions like from WooCommerce this would have been a disaster.
I developed WP-Cron Status Checker the very next day. The plugin ensures WP-Cron is running so emails can go out, subscriptions can renew, and plugin receive update notices. If for any reason it stops working I get an email on what went wrong. Best of all, the plugin runs in the background without much configuration needed.
View the plugin in the WordPress repository:
https://wordpress.org/plugins/wp-cron-status-checker/
Some screenshots below: