WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта с помощью браузерных PUSH уведомлений
функция не описана

ActionScheduler_DBStore::claim_actions() protected WC 1.0

Mark actions claimed.

{} Это метод класса: ActionScheduler_DBStore{}

Хуков нет.

Возвращает

Число. The number of actions that were claimed.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->claim_actions( $claim_id, $limit, \DateTime $before_date, $hooks, $group );
$claim_id(строка) (обязательный)
Claim Id.
$limit(число) (обязательный)
Number of action to include in claim.
\DateTime $before_date **
-
По умолчанию: null
$hooks **
-
По умолчанию: array()
$group **
-
По умолчанию: ''

Код ActionScheduler_DBStore::claim_actions() WC 5.2.2

<?php
protected function claim_actions( $claim_id, $limit, \DateTime $before_date = null, $hooks = array(), $group = '' ) {
	/** @var \wpdb $wpdb */
	global $wpdb;

	$now  = as_get_datetime_object();
	$date = is_null( $before_date ) ? $now : clone $before_date;

	// can't use $wpdb->update() because of the <= condition
	$update = "UPDATE {$wpdb->actionscheduler_actions} SET claim_id=%d, last_attempt_gmt=%s, last_attempt_local=%s";
	$params = array(
		$claim_id,
		$now->format( 'Y-m-d H:i:s' ),
		current_time( 'mysql' ),
	);

	$where    = "WHERE claim_id = 0 AND scheduled_date_gmt <= %s AND status=%s";
	$params[] = $date->format( 'Y-m-d H:i:s' );
	$params[] = self::STATUS_PENDING;

	if ( ! empty( $hooks ) ) {
		$placeholders = array_fill( 0, count( $hooks ), '%s' );
		$where       .= ' AND hook IN (' . join( ', ', $placeholders ) . ')';
		$params       = array_merge( $params, array_values( $hooks ) );
	}

	if ( ! empty( $group ) ) {

		$group_id = $this->get_group_id( $group, false );

		// throw exception if no matching group found, this matches ActionScheduler_wpPostStore's behaviour
		if ( empty( $group_id ) ) {
			/* translators: %s: group name */
			throw new InvalidArgumentException( sprintf( __( 'The group "%s" does not exist.', 'woocommerce' ), $group ) );
		}

		$where   .= ' AND group_id = %d';
		$params[] = $group_id;
	}

	$order    = "ORDER BY attempts ASC, scheduled_date_gmt ASC, action_id ASC LIMIT %d";
	$params[] = $limit;

	$sql = $wpdb->prepare( "{$update} {$where} {$order}", $params );

	$rows_affected = $wpdb->query( $sql );
	if ( $rows_affected === false ) {
		throw new \RuntimeException( __( 'Unable to claim actions. Database error.', 'woocommerce' ) );
	}

	return (int) $rows_affected;
}