При парсинге появляется ошибка 500 в WordPress

Написал парсер страниц, но возникла непонятная проблема.

На сервер установлен curl php(проверял). В functions.php я написал метод, в который передается нужный url, а в методе сделал парсер.

Тут появляется проблема. Когда я запускаю сайт на хостинге timeweb, у меня сайт просто не загружается - выдает ошибку 500. Если убираю этот метод, проблема пропадает. Подумал, что проблема может быть в сервере. Проверил, установлен ли php curl. Увидел, что да, установлен. Далее решил проверить вне functions.php работу парсера и - о чудо! - он заработал. Но почему он не работает в functions.php? Кто-то сталкивался с подобной проблемой? Также пробовал на локальном хостинге и в файле функций он работает.

Пробовал также метод в WordPress wp_remote_get($site);, но он также не работает.

function get_partner_price($site, $partner){
    $html = wp_remote_get($site);
    $html = $html['body'];
    switch($partner){
        case 'expert':
            $result = [];
            $classname = 'product__price-count';
            $domdocument = new DOMDocument('1.0', 'utf-8');
            @$domdocument->loadHTML($html);
            $a = new DOMXPath($domdocument);
            $spans = $a->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
            for ($i = $spans->length - 1; $i > -1; $i--) {
                $result[] = utf8_decode($spans->item($i)->firstChild->nodeValue);
            }
            $price = $result[0];
            if($price == null) { return null; }
            break;

        case 'spets':
            $doc = new DOMDocument();
            @$doc->loadHTML($html);
            $price=$doc->getElementById('priceOffers')->nodeValue;
            if($price == null) { return null; }
            break;

        case 'sirius':
            $result = [];
            $classname = 'price-opt';
            $doс = new DOMDocument('1.0', 'utf-8');
            @$doс->loadHTML($html);
            $a = new DOMXPath($doс);
            $spans = $a->query(
                "//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]/span"
            );
            for ($i = $spans->length - 1; $i > -1; $i--) {
                $result[] = utf8_decode($spans->item($i)->firstChild->nodeValue);
            }
            $price = $result[12];
            if($price == null) { return null; }
            break;

        default:
            $price = null;
            break;
    }
    return $price;
}

Ответы (0 шт):