handle(); exit; } private static function isExchangeRequest(): bool { // Запрос от 1С, не из браузера: авторизация по логину/паролю обмена, nonce здесь неприменим. if (isset($_GET[self::QUERY_VAR])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended return true; } $uri = isset($_SERVER['REQUEST_URI']) ? esc_url_raw(wp_unslash($_SERVER['REQUEST_URI'])) : ''; $path = (string) wp_parse_url($uri, PHP_URL_PATH); $home = trim((string) wp_parse_url(home_url(), PHP_URL_PATH), '/'); $path = trim($path, '/'); if ($home !== '' && str_starts_with($path . '/', $home . '/')) { $path = ltrim(substr($path, strlen($home)), '/'); } // «wc1c-exchange» или «xx/wc1c-exchange» (языковой префикс). return (bool) preg_match('#^(?:[a-z]{2}(?:[-_][a-z]{2,4})?/)?' . self::SLUG . '$#i', $path); } }