Automattic\WooCommerce\StoreApi\Utilities

RateLimits::update_rate_limit()public staticWC 1.0

Sets the rate limit delay in seconds for action with identifier $id.

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

Хуков нет.

Возвращает

Объект. Current rate limits.

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

$result = RateLimits::update_rate_limit( $action_id );
$action_id(строка) (обязательный)
Identifier of the action.

Код RateLimits::update_rate_limit() WC 8.7.0

public static function update_rate_limit( $action_id ) {
	global $wpdb;

	$options = self::get_options();

	$rate_limit_expiry = time() + $options->seconds;

	$wpdb->query(
		$wpdb->prepare(
			"INSERT INTO {$wpdb->prefix}wc_rate_limits
				(`rate_limit_key`, `rate_limit_expiry`, `rate_limit_remaining`)
			VALUES
				(%s, %d, %d)
			ON DUPLICATE KEY UPDATE
				`rate_limit_remaining` = IF(`rate_limit_expiry` < %d, VALUES(`rate_limit_remaining`), GREATEST(`rate_limit_remaining` - 1, 0)),
				`rate_limit_expiry` = IF(`rate_limit_expiry` < %d, VALUES(`rate_limit_expiry`), `rate_limit_expiry`);
			",
			$action_id,
			$rate_limit_expiry,
			$options->limit - 1,
			time(),
			time()
		)
	);

	$current_limit = self::get_rate_limit_row( $action_id );

	self::set_cache( $action_id, $current_limit );

	return $current_limit;
}