Объект класса stdClass не может быть преобразован в строку - ошибка Joomla K2 Store после обновления php до php 7.2 - PullRequest
0 голосов
/ 25 сентября 2019

Я недавно обновил сайт Joomla до v3.9 и запустил K2store для функциональности покупок.Что я заметил, так это то, что страница проверки работает нормально на php7.0, но как только я обновляюсь до php7.2, она выдает ошибку " Исправимая фатальная ошибка: объект класса stdClass не может быть преобразован в строку ».Мой хостинг-провайдер обновляет все свои сервисы, чтобы поддерживать только php7.2 - вот почему мне нужно обновить веб-сайт.

Ниже приведен код, который генерирует раскрывающийся список стран на странице оформления заказа, на которойошибка.

    function setValues(&$zones,&$fields,$k,&$field){

    if($field->field_type=='zone' && !empty($field->field_options['zone_type']) && $field->field_options['zone_type']=='country'){
        foreach($zones as $zone){
            $title = $zone->country_name;
            $obj = new stdClass();
            $obj->value = $zone->country_name;
            $obj->disabled = '0';
            $fields[$k]->field_value[$zone->country_id]=$obj;
        }
    } elseif($field->field_type=='zone' && !empty($field->field_options['zone_type']) && $field->field_options['zone_type']=='zone'){
        foreach($zones as $zone){
            if(isset($zone->zone_id)) {
                $title = $zone->zone_name;
                $obj = new stdClass();
                $obj->value = $title;
                $obj->disabled = '0';
                $fields[$k]->field_value[$zone->zone_id]=$obj;
            }
        }

    }
}

Ошибка в полях $ [$ k] -> field_value [$ zone-> zone_id] = $ obj; в обоих операторах if.

Буду признателен, если вы объясните, что вызывает ошибку в php7.2 и как я могу это исправить.Лучше понять, как решена проблема, а затем просто скопировать и пройти код :).Спасибо заранее!

...