Schedules for WordPress Cron add

In WordPress we have a filter cron_schedules which allow us to add custom schedule.

We have see we can use the function wp_get_schedules() to see all the existing schedules.

In above example we have below schedules:

To add our own unique schedules, we may utilize the cron_schedules. Let’s add an action to the every_ten_minutes schedule.

<?php /** * Add Cron Schedules * * @todo Change the `prefix_` and with your own unique prefix. * * @since 1.0.0 * * @param array() $schedules Existing schedules. * @return array */ if( ! function_exists( 'prefix_add_cron_schedules' ) ) : function prefix_add_cron_schedules( $schedules = array() ) { $schedules['every_ten_minutes'] = array( 'interval' => 600, // 600 seconds means 10 minutes. 'display' => __( 'Every 10 minutes', 'textdomain' ), ); return $schedules; } add_filter( 'cron_schedules', 'prefix_add_cron_schedules' ); endif;

We have implemented a new schedule with a 600 second interval, which implies every 10 minutes.

Create a WordPress Cron Event

Every_ten_minutes is the custom schedule that we have registered.

Let’s now add a cron event or a custom schedule event.

The wp_schedule_event() method allows us to register the schedule event.

Check out the code below:

<?php /** * Add schedule event or Cron event with wp_schedule_event() * * @todo Change the `prefix_` and with your own unique prefix. * * @since 1.0.0 * * @return void */ if( ! function_exists( 'prefix_add_scheduled_event' ) ) : function prefix_add_scheduled_event() { // Schedule the event if it is not scheduled. if ( ! wp_next_scheduled( 'prefix_cron_hook' ) ) { wp_schedule_event( time(), 'every_ten_minutes', 'prefix_cron_hook' ); } } add_action( 'admin_init', 'prefix_add_scheduled_event' ); endif;

The prefix_cron_hook scheduling event is registered here. Every 10 minutes, this planned event is set to trigger.

However, we must add a step that is identical to our planned event.

The same action, prefix_cron_hook, can be used to carry out several tasks. Let’s add a example job now.

Create a WordPress Cron Job

To execute our scheduled event with hook prefix_cron_hook, we may utilize the method add_action().

For reference, see the code below:

<?php /** * Task to perform * * @todo Change the `prefix_` and with your own unique prefix. * * @since 1.0.0 * * @return void */ if( ! function_exists( 'prefix_cron_task' ) ) : function prefix_cron_task() { $to = 'sendto@example.com'; $subject = 'This Email is generated using WordPress cron job.'; $body = 'The email body content. Hire Prakash Tyata if you need further assistance.'; $headers = array('Content-Type: text/html; charset=UTF-8');  wp_mail( $to, $subject, $body, $headers ); } add_action( 'prefix_cron_hook', 'prefix_cron_task' ); endif;

Categorized in: