if(!isset($post->meta['ads_basecat']) or !$post->meta['ads_basecat'])return $the_content;
Установщику должно быть по барабану на текущую ФС и на записи в MBR, копайте в другом направлении.
Есть один деревянный способ - в конце функций (или в конце одной, которая принимает $output'ы мелких вызовов и собирает всё в один большой XML), запихните следующее:
$output = str_replace('&', '&', $output); # восстановим амперсанды если вдруг кто-то делал это частично до нас$output = str_replace('&', '&', $output); # заменим амперсанды на эквиваленты
Если после этого XML будет валидным - вам необходимо будет написать автору компоненты багрепорт с просьбой экранировать спецсимволы в своих продуктах.
У вас есть пример XML'я, который получается в итоге?
Ну если проблема в нём, то замените все "&" на "&" в коде выше.
Вы путаете бэк-энд с фронт-эндом.
Отсутствует присваивание результата.
Боги, какой адовый говногод.
У вас не объявлена переменная $params.
traceroute в студию.
Открой глаза, у них собственный центр сертификации.