as_schedule_recurring_action()WC 1.0

Schedule a recurring action

Хуки из функции

Возвращает

int. The action ID. Zero if there was an error scheduling the action.

Использование

as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args, $group, $unique, $priority );
$timestamp(int) (обязательный)
When the first instance of the job will run.
$interval_in_seconds(int) (обязательный)
How long to wait between runs.
$hook(строка) (обязательный)
The hook to trigger.
$args(массив)
Arguments to pass when the hook triggers.
По умолчанию: array()
$group(строка)
The group to assign this job to.
По умолчанию: ''
$unique(true|false)
Whether the action should be unique.
По умолчанию: false
$priority(int)
Lower values take precedence over higher values.
По умолчанию: 10, with acceptable values falling in the range 0-255

Код as_schedule_recurring_action() WC 8.7.0

function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args = array(), $group = '', $unique = false, $priority = 10 ) {
	if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
		return 0;
	}

	$interval = (int) $interval_in_seconds;

	// We expect an integer and allow it to be passed using float and string types, but otherwise
	// should reject unexpected values.
	if ( ! is_numeric( $interval_in_seconds ) || $interval_in_seconds != $interval ) {
		_doing_it_wrong(
			__METHOD__,
			sprintf(
				/* translators: 1: provided value 2: provided type. */
				esc_html__( 'An integer was expected but "%1$s" (%2$s) was received.', 'woocommerce' ),
				esc_html( $interval_in_seconds ),
				esc_html( gettype( $interval_in_seconds ) )
			),
			'3.6.0'
		);

		return 0;
	}

	/**
	 * Provides an opportunity to short-circuit the default process for enqueuing recurring
	 * 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 int      $interval_in_seconds How long to wait between runs.
	 * @param string   $hook                Action hook.
	 * @param array    $args                Action arguments.
	 * @param string   $group               Action group.
	 * @param int      $priority            Action priority.
	 */
	$pre = apply_filters( 'pre_as_schedule_recurring_action', null, $timestamp, $interval_in_seconds, $hook, $args, $group, $priority );
	if ( null !== $pre ) {
		return is_int( $pre ) ? $pre : 0;
	}

	return ActionScheduler::factory()->create(
		array(
			'type'      => 'recurring',
			'hook'      => $hook,
			'arguments' => $args,
			'when'      => $timestamp,
			'pattern'   => $interval_in_seconds,
			'group'     => $group,
			'unique'    => $unique,
			'priority'  => $priority,
		)
	);
}