Ошибка при оформлении заказа с мобильного. Есть решение

1

При оформлении заказа с телефона, выдает следующую ошибку.

Fatal error: shopCheckout::getContact(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "waContact" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /wa-apps/shop/lib/classes/checkout/shopCheckout.class.php on line 74


Пробовал:

Менял темы дизайна;

Отключал все плагины;

Менял "Оформление заказа в корзине" на "Пошаговое оформление заказа"

Ошибка возникает только, если оформлять заказ с телефона/планшета. На десктопе проблем нет.

Кусок кода с 66й по 79ю строку, 74я выделена жирным:

protected function getContact()
{
if (wa()->getUser()->isAuth()) {
$contact = wa()->getUser();
} else {
$contact = $this->getSessionData('contact');
}
if ($contact) {
if (!$contact->get('address.shipping') && $addresses = $contact->get('address')) {
$contact->set('address.shipping', $addresses[0]);
}
}
return $contact ? $contact : new waContact();
}

9 комментариев

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 11 февраля 2019 09:51 #

    Попробуйте очистить кеш Webasyst в приложении «Настройки». Установите все доступные обновления для Shop-Script и фреймворка Webasyst. Сообщите номер вашей версии Shop-Script.

    • +1
      JammShoot JammShoot 11 февраля 2019 10:00 #

      Здравствуйте. Еще информация.
      Если авторизоваться и оформлять заказ, Checkout открывается по https://site/checkout
      Если не логинится Checkout открывается не по зашифрованому соединению http://site/checkout
      Оказывается данная проблема и на мобайл и на десктоп

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 11 февраля 2019 16:07 #

        Если не логинится Checkout открывается не по зашифрованому соединению http://site/checkout

        По какому протоколу открывается витрина до перехода к оформлению заказа в этом случае? Это происходит только в вашем магазине?

        • +1
          JammShoot JammShoot 11 февраля 2019 17:18 #

          SSL подключен на весь сайт. В опциях включал/выключал опцию "Использовать защищенное HTTPS-соединение при оформлении заказа и для личного кабинета покупателя". 

          Опцию "Перенаправлять на HTTPS" не трогал, так как в прошлый раз пришлось шерстить форум и искать где нужно отредактировать файл настроек по FTP. Сайт отрубился полностью.

        • +1
          JammShoot JammShoot 11 февраля 2019 20:23 #

          Вернулся на PHP 5.6, проблема исчезла, до этого был подключен 7.0

          Кстати, в логах сервера ошибка выглядит так:

          [Mon Feb 11 18:50:13 2019] [warn] [client ....] mod_fcgid: stderr: PHP Fatal error: shopCheckout::getContact(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "waContact" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /sata1/home/users/login/www/site/wa-apps/shop/lib/classes/checkout/shopCheckout.class.php on line 74, referer: https://site/checkout
        • +1
          Михаил Ушенин Михаил Ушенин Webasyst 12 февраля 2019 08:49 #

          Возможно, в конфигурации PHP включён параметр session.auto_start. Попробуйте его отключить.

        • +1
          JammShoot JammShoot 12 февраля 2019 11:01 #

          Для всех версий, конфигурация не менялась.

        • +1
          Михаил Ушенин Михаил Ушенин Webasyst 12 февраля 2019 15:14 #

          Не удалось повторить описанное вами поведение в тестовом аккаунте. Предлагаю вам воспользоваться услугой расширенной диагностики специалистами нашей компании (заказать). В случае выявления ошибок в программных продуктах, разработанных нашей компанией, или наших инструкциях стоимость услуги будет возвращена в полном объёме.

          Добавить комментарий

          Чтобы добавить комментарий, зарегистрируйтесь или войдите