as_schedule_cron_action()
Schedule an action that recurs on a cron-like schedule.
Hooks from the function
Returns
Int. The action ID. Zero if there was an error scheduling the action.
Usage
as_schedule_cron_action( $timestamp, $schedule, $hook, $args, $group, $unique, $priority );
- $timestamp(int) (required)
- The first instance of the action will be scheduled to run at a time calculated after this timestamp matching the cron expression. This can be used to delay the first instance of the action.
- $schedule(string) (required)
- A cron-link schedule string.
- $hook(string) (required)
- The hook to trigger.
- $args(array)
- Arguments to pass when the hook triggers.
Default: array() - $group(string)
- The group to assign this job to.
Default: '' - $unique(true|false)
- Whether the action should be unique. It will not be scheduled if another pending or running action has the same hook and group parameters.
Default: false - $priority(int)
- Lower values take precedence over higher values.
Default: 10, with acceptable values falling in the range 0-255
Notes
- See: http://en.wikipedia.org/wiki/Cron
┬ ┬ ┬ ┬ ┬ ┬
| | | | | |
| | | | | + year [optional]
| | | | +----- day of week (0 - 7) (Sunday=0 or 7)
| | | +---------- month (1 - 12)
| | +--------------- day of month (1 - 31)
| +-------------------- hour (0 - 23)
+------------------------- min (0 - 59)
as_schedule_cron_action() as schedule cron action code WC 10.3.5
function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(), $group = '', $unique = false, $priority = 10 ) {
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
return 0;
}
/**
* Provides an opportunity to short-circuit the default process for enqueuing cron
* actions.
*
* Returning a value other than null from the filter will short-circuit the normal
* process. The expectation in such a scenario is that callbacks will return an integer
* representing the scheduled action ID (scheduled using some alternative process) or else
* zero.
*
* @param int|null $pre_option The value to return instead of the option value.
* @param int $timestamp When the action will run.
* @param string $schedule Cron-like schedule string.
* @param string $hook Action hook.
* @param array $args Action arguments.
* @param string $group Action group.
* @param int $priority Action priority.
* @param bool $unique Unique action.
*/
$pre = apply_filters( 'pre_as_schedule_cron_action', null, $timestamp, $schedule, $hook, $args, $group, $priority, $unique );
if ( null !== $pre ) {
return is_int( $pre ) ? $pre : 0;
}
return ActionScheduler::factory()->create(
array(
'type' => 'cron',
'hook' => $hook,
'arguments' => $args,
'when' => $timestamp,
'pattern' => $schedule,
'group' => $group,
'unique' => $unique,
'priority' => $priority,
)
);
}