Как определить, является ли сайт электронной коммерции Woocommerce или Shopify или нет? - PullRequest
0 голосов
/ 28 февраля 2020

Я ищу надежный метод с помощью кода, чтобы определить, работает ли идентификатор платформы электронной коммерции в woocommerce или shopify.

Банкомат, я пришел с кодом ниже, который проверяет, есть ли URL с " wp-admin "или" admin ", но это не надежно.

  $url1 = "https://www." . $_POST['domain'] . "/wp-admin";
     $url2 = "https://www." . $_POST['domain'] . "/admin";

     // Use get_header() function

     $headers1 = @get_headers($url1);
     $headers2 = @get_headers($url2);

     // Use conditio to check existence of URL

     if($headers1 && strpos($headers1[0], '200'))
     {
         $eCommercePlatform = "WordPress/Woocommerce";
     }
     elseif($headers2 && strpos($headers2[0], '200'))
     {
        $eCommercePlatform = "Shopify";
     }
     else
     {
        $eCommercePlatform = "Not Shopify or Woocommerce";
     }

Любые другие хорошие хаки / предложения?

1 Ответ

0 голосов
/ 29 февраля 2020

Я бы использовал что-то вроде этого:

// Mimic the browser
ini_set('user_agent', 'Mozilla/5.0');

$headers = @get_headers($url, 1);

if (isset($headers['X-Shopify-Stage'])) {
    $eCommercePlatform = "Shopify";
} elseif (!empty($headers['X-Powered-By']) && $headers['X-Powered-By'] == 'WP Engine') {
    $eCommercePlatform = "WordPress/Woocommerce";
} else {
    $eCommercePlatform = "Not Shopify or Woocommerce";
}

Объяснение :

Проверка пути /wp-admin не лучший способ обнаружить WordPress при включении первый сайт WP, который я протестировал - он вернул 403 Forbidden . Я предполагаю, что другие могут сделать то же самое в целях безопасности.

Я обнаружил, что все сайты Shopify возвращают заголовок X-Shopify-Stage (по крайней мере, пока), который можно использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...