ActionScheduler_AdminView::check_pastdue_actions()protectedWC 1.0

Check past-due actions, and print notice.

Метод класса: ActionScheduler_AdminView{}

Возвращает

null. Ничего (null).

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->check_pastdue_actions();

Код ActionScheduler_AdminView::check_pastdue_actions() WC 8.7.0

protected function check_pastdue_actions() {

	# Set thresholds.
	$threshold_seconds = ( int ) apply_filters( 'action_scheduler_pastdue_actions_seconds', DAY_IN_SECONDS );
	$threshhold_min    = ( int ) apply_filters( 'action_scheduler_pastdue_actions_min', 1 );

	// Set fallback value for past-due actions count.
	$num_pastdue_actions = 0;

	// Allow third-parties to preempt the default check logic.
	$check = apply_filters( 'action_scheduler_pastdue_actions_check_pre', null );

	// If no third-party preempted and there are no past-due actions, return early.
	if ( ! is_null( $check ) ) {
		return;
	}

	# Scheduled actions query arguments.
	$query_args = array(
		'date'     => as_get_datetime_object( time() - $threshold_seconds ),
		'status'   => ActionScheduler_Store::STATUS_PENDING,
		'per_page' => $threshhold_min,
	);

	# If no third-party preempted, run default check.
	if ( is_null( $check ) ) {
		$store = ActionScheduler_Store::instance();
		$num_pastdue_actions = ( int ) $store->query_actions( $query_args, 'count' );

		# Check if past-due actions count is greater than or equal to threshold.
		$check = ( $num_pastdue_actions >= $threshhold_min );
		$check = ( bool ) apply_filters( 'action_scheduler_pastdue_actions_check', $check, $num_pastdue_actions, $threshold_seconds, $threshhold_min );
	}

	# If check failed, set transient and abort.
	if ( ! boolval( $check ) ) {
		$interval = apply_filters( 'action_scheduler_pastdue_actions_check_interval', round( $threshold_seconds / 4 ), $threshold_seconds );
		set_transient( 'action_scheduler_last_pastdue_actions_check', time(), $interval );

		return;
	}

	$actions_url = add_query_arg( array(
		'page'   => 'action-scheduler',
		'status' => 'past-due',
		'order'  => 'asc',
	), admin_url( 'tools.php' ) );

	# Print notice.
	echo '<div class="notice notice-warning"><p>';
	printf(
		_n(
			// translators: 1) is the number of affected actions, 2) is a link to an admin screen.
			'<strong>Action Scheduler:</strong> %1$d <a href="%2$s">past-due action</a> found; something may be wrong. <a href="https://actionscheduler.org/faq/#my-site-has-past-due-actions-what-can-i-do" target="_blank">Read documentation &raquo;</a>',
			'<strong>Action Scheduler:</strong> %1$d <a href="%2$s">past-due actions</a> found; something may be wrong. <a href="https://actionscheduler.org/faq/#my-site-has-past-due-actions-what-can-i-do" target="_blank">Read documentation &raquo;</a>',
			$num_pastdue_actions,
			'woocommerce'
		),
		$num_pastdue_actions,
		esc_attr( esc_url( $actions_url ) )
	);
	echo '</p></div>';

	# Facilitate third-parties to evaluate and print notices.
	do_action( 'action_scheduler_pastdue_actions_extra_notices', $query_args );
}