Automattic\WooCommerce\StoreApi\Utilities

RateLimits::update_rate_limit()public staticWC 1.0

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

Method of the class: RateLimits{}

No Hooks.

Return

Object. Current rate limits.

Usage

$result = RateLimits::update_rate_limit( $action_id );
$action_id(string) (required)
Identifier of the action.

RateLimits::update_rate_limit() code WC 8.6.1

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;
}