Pawan Kumawat

Cron Job WordPress (WP-Cron)

In WordPress, you can customize the schedule intervals for WP-Cron using the `cron_schedules`, `wp_schedule_event`, and various time constants. By defining your custom cron schedules and using `wp_schedule_event`, you can schedule tasks to run at intervals such as hourly, twice daily, daily, or even per minute. Here’s how you can achieve that:

To define custom cron schedules for hourly, twice daily, daily, per minute, every 10 seconds, and for every 10 days in WordPress, you can use the `cron_schedules` filter. Here’s how you can achieve this:

// Define custom cron schedules
add_filter('cron_schedules', 'custom_cron_schedules');
function custom_cron_schedules($schedules) {
    // Hourly schedule
    $schedules['hourly'] = array(
        'interval' => HOUR_IN_SECONDS,
        'display'  => __('Hourly', 'text-domain')
    );

    // Twice daily schedule
    $schedules['twicedaily'] = array(
        'interval' => DAY_IN_SECONDS / 2,
        'display'  => __('Twice Daily', 'text-domain')
    );

    // Daily schedule
    $schedules['daily'] = array(
        'interval' => DAY_IN_SECONDS,
        'display'  => __('Daily', 'text-domain')
    );

    // Per minute schedule
    $schedules['every_minute'] = array(
        'interval' => 60,
        'display'  => __('Every Minute', 'text-domain')
    );

    // Every 10 seconds schedule
    $schedules['every_10_seconds'] = array(
        'interval' => 10,
        'display'  => __('Every 10 Seconds', 'text-domain')
    );

    // Every 10 days schedule
    $schedules['every_10_days'] = array(
        'interval' => DAY_IN_SECONDS * 10,
        'display'  => __('Every 10 Days', 'text-domain')
    );

    return $schedules;
}

 

In the code above, we have added custom cron schedules for hourly, twice daily, daily, per minute, every 10 seconds, and every 10 days. We use the `HOUR_IN_SECONDS`, `DAY_IN_SECONDS`, and multiplication by 10 to define the intervals for each schedule.

Now, you can use these custom schedules with `wp_schedule_event` to schedule tasks accordingly:

// Schedule a task to run every hour
wp_schedule_event(time(), 'hourly', 'my_hourly_event');

// Schedule a task to run twice daily
wp_schedule_event(time(), 'twicedaily', 'my_twice_daily_event');

// Schedule a task to run every day
wp_schedule_event(time(), 'daily', 'my_daily_event');

// Schedule a task to run every minute (using the custom schedule we defined earlier)
wp_schedule_event(time(), 'every_minute', 'my_minute_event');

// Schedule a task to run every 10 seconds (using the custom schedule we defined earlier)
wp_schedule_event(time(), 'every_10_seconds', 'my_10_seconds_event');

// Schedule a task to run every 10 days (using the custom schedule we defined earlier)
wp_schedule_event(time(), 'every_10_days', 'my_10_days_event');

 

Replace `’my_hourly_event’`, `’my_twice_daily_event’`, `’my_daily_event’`, `’my_minute_event’`, `’my_10_seconds_event’`, and `’my_10_days_event’` with your actual event names and callback functions.

// Define the callback function for 'my_hourly_event'
function my_hourly_event_callback() {
    // Your task logic goes here
}
add_action('my_hourly_event', 'my_hourly_event_callback');

// Define the callback function for 'my_twice_daily_event'
function my_twice_daily_event_callback() {
    // Your task logic goes here
}
add_action('my_twice_daily_event', 'my_twice_daily_event_callback');

// Define the callback function for 'my_daily_event'
function my_daily_event_callback() {
    // Your task logic goes here
}
add_action('my_daily_event', 'my_daily_event_callback');

// Define the callback function for 'my_minute_event'
function my_minute_event_callback() {
    // Your task logic goes here
}
add_action('my_minute_event', 'my_minute_event_callback');

// Define the callback function for 'my_10_seconds_event'
function my_10_seconds_event_callback() {
    // Your task logic goes here
}
add_action('my_10_seconds_event', 'my_10_seconds_event_callback');

// Define the callback function for 'my_10_days_event'
function my_10_days_event_callback() {
    // Your task logic goes here
}
add_action('my_10_days_event', 'my_10_days_event_callback');

 

Remember that WP-Cron relies on site visits, so tasks may not run precisely on time, especially for per minute, every 10 seconds, and every 10 days intervals. For more precise and reliable scheduling, consider using a real server cron job as described in previous responses.

Categories

Related Blogs

Shortcodes included with Dokan

Dokan is a popular multi-vendor marketplace plugin for WooCommerce that allows you to create and manage a marketplace where multiple vendors can sell their products. Dokan provides several shortcodes that you can use to display various elements and functionalities on your marketplace pages. Here are some of the essential shortcodes provided by Dokan:

Elementor shortcodes

Elementor is a popular page builder plugin for WordPress that allows you to create and customize web pages using a drag-and-drop interface. Elementor provides a wide range of built-in widgets and elements, and you can also create your own custom elements using shortcodes.