Automattic\WooCommerce\StoreApi\Utilities
RateLimits::update_rate_limit
Sets the rate limit delay in seconds for action with identifier $id.
Method of the class: RateLimits{}
No Hooks.
Returns
Object. Current rate limits.
Usage
$result = RateLimits::update_rate_limit( $action_id ): object;
- $action_id(string) (required)
- Identifier of the action.
RateLimits::update_rate_limit() RateLimits::update rate limit code WC 10.8.1
public static function update_rate_limit( string $action_id ): object {
global $wpdb;
$options = self::get_options();
$time = time();
$rate_limit_expiry = $time + (int) $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,
(int) $options->limit - 1,
$time,
$time
)
);
$current_limit = self::get_rate_limit_row( $action_id );
self::set_cache( $action_id, $current_limit );
return $current_limit;
}