WP Job Manager uses the WordPress Cron system to check hourly for jobs (or resumes, with the Resume Manager addon) that have reached their expiry date, and change their status to ‘Expired’.
If your job listings are not expiring when they should be, it’s likely due to an issue with the Cron system. WordPress uses cron to keep track of scheduled events.
To troubleshoot, go through the following steps:
- Check your wp-config.php file and make sure it doesn’t contain the following code anywhere:
define('DISABLE_WP_CRON', true);
If it does, change ‘true’ to ‘false’.
- Install the WP Crontrol plugin, then go to Settings > Cron Schedules. This lists all scheduled events on your site.
- Check for any general error messages at the top of the page. If you see an error message telling you that Cron is not working properly, you’ll need to contact your hosting provider for help resolving that.
- If there are no errors, check for any ‘stuck’ Cron Events. These can be found under Cron Events tab at the top of the page. Stuck events are where the ‘Next Run’ interval is greater than the ‘Recurrence’ value.
If you find any, try to delete them and then click ‘Run Now’ on the job_manager_check_for_expired_jobs event to see if that helps. You can see the Run Now and Delete options by hovering over the job_manager_check_for_expired_jobs event. - Other cron events may be listed which are tied to other plugins or WordPress itself. If you have the Resume Manager addon, you may also want to check the event resume_manager_check_for_expired_resumes.
If none of that resolves the issue, please contact support for further assistance.