pre_get_ready_cron_jobs is a WordPress PHP filter that allows you to modify or intercept the retrieval of ready cron jobs before they are executed.
Usage
add_filter( 'pre_get_ready_cron_jobs', 'your_custom_function_name', 10, 1 ); function your_custom_function_name( $pre ) { // your custom code here return $pre; }
Parameters
- $pre (null|array[]): An array of ready cron tasks to return instead. Default is null, which continues using results from _get_cron_array().
More information
See WordPress Developer Resources: pre_get_ready_cron_jobs
Examples
Log all ready cron jobs
Log all ready cron jobs before they are executed.
add_filter( 'pre_get_ready_cron_jobs', 'log_ready_cron_jobs', 10, 1 ); function log_ready_cron_jobs( $pre ) { // Log the ready cron jobs error_log( print_r( $pre, true ) ); return $pre; }
Skip a specific cron job
Skip a specific cron job by removing it from the ready cron jobs array.
add_filter( 'pre_get_ready_cron_jobs', 'skip_specific_cron_job', 10, 1 ); function skip_specific_cron_job( $pre ) { // Remove the specific cron job unset( $pre['your_cron_hook'] ); return $pre; }
Add a custom cron job
Add a custom cron job to the ready cron jobs array.
add_filter( 'pre_get_ready_cron_jobs', 'add_custom_cron_job', 10, 1 ); function add_custom_cron_job( $pre ) { // Add the custom cron job $pre['custom_cron_hook'] = time(); return $pre; }
Replace all cron jobs with a custom one
Replace all ready cron jobs with a single custom cron job.
add_filter( 'pre_get_ready_cron_jobs', 'replace_with_custom_cron_job', 10, 1 ); function replace_with_custom_cron_job( $pre ) { // Replace all cron jobs with a custom one $pre = array( 'custom_cron_hook' => time() ); return $pre; }
Execute specific cron job immediately
Execute a specific cron job immediately by setting its timestamp to the current time.
add_filter( 'pre_get_ready_cron_jobs', 'execute_specific_cron_job_immediately', 10, 1 ); function execute_specific_cron_job_immediately( $pre ) { // Set the timestamp of the specific cron job to the current time $pre['your_cron_hook'] = time(); return $pre; }