as_unschedule_action()WC 1.0

Cancel the next occurrence of a scheduled action.

While only the next instance of a recurring or cron action is unscheduled by this method, that will also prevent all future instances of that recurring or cron action from being run. Recurring and cron actions are scheduled in a sequence instead of all being scheduled at once. Each successive occurrence of a recurring action is scheduled only after the former action is run. If the next instance is never run, because it's unscheduled by this function, then the following instance will never be scheduled (or exist), which is effectively the same as being unscheduled by this method also.

Хуков нет.

Возвращает

int|null. The scheduled action ID if a scheduled action was found, or null if no matching action found.

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

as_unschedule_action( $hook, $args, $group );
$hook(строка) (обязательный)
The hook that the job will trigger.
$args(массив)
Args that would have been passed to the job.
По умолчанию: array()
$group(строка)
The group the job is assigned to.
По умолчанию: ''

Код as_unschedule_action() WC 8.7.0

function as_unschedule_action( $hook, $args = array(), $group = '' ) {
	if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
		return 0;
	}
	$params = array(
		'hook'    => $hook,
		'status'  => ActionScheduler_Store::STATUS_PENDING,
		'orderby' => 'date',
		'order'   => 'ASC',
		'group'   => $group,
	);
	if ( is_array( $args ) ) {
		$params['args'] = $args;
	}

	$action_id = ActionScheduler::store()->query_action( $params );

	if ( $action_id ) {
		try {
			ActionScheduler::store()->cancel_action( $action_id );
		} catch ( Exception $exception ) {
			ActionScheduler::logger()->log(
				$action_id,
				sprintf(
					/* translators: %1$s is the name of the hook to be cancelled, %2$s is the exception message. */
					__( 'Caught exception while cancelling action "%1$s": %2$s', 'woocommerce' ),
					$hook,
					$exception->getMessage()
				)
			);

			$action_id = null;
		}
	}

	return $action_id;
}