get_var($wpdb->prepare('SELECT GET_LOCK(%s, %d)', self::key($name), $timeout)); // phpcs:ignore WordPress.DB.DirectDatabaseQuery return $got === null || (string) $got === '1'; } public static function release(string $name): void { global $wpdb; $wpdb->query($wpdb->prepare('SELECT RELEASE_LOCK(%s)', self::key($name))); // phpcs:ignore WordPress.DB.DirectDatabaseQuery } private static function key(string $name): string { global $wpdb; // Named locks are server-wide; scope them to this site's tables. return substr('aipcf_' . $wpdb->prefix . $name, 0, 64); } }