Гостевое отслеживание заказа переделать для зарегестрированных

Тема в разделе "PrestaShop", создана пользователем idema, 18 июл 2019.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. idema

    idema Постоялец

    Регистр.:
    16 ноя 2013
    Сообщения:
    75
    Симпатии:
    22
    Здравствуйте, в Prestashop есть функция гостевое отслеживание заказа guest-tracking, и работает только для незарегистрированных покупателей. Можно ли как-то переделать его, чтобы могли и зарегистрированные покупатели отслеживать? Просто часть покупателей не смотрят почту, часть не понимает, что можно зайти в личным кабинет и посмотреть статус заказа. Хочу приделать большую кнопку "Отследить заказ", которая выдаст трэк номер или статус заказа. Или может быть какие то другие варианты предложите
    Спасибо
     
  2. Zveruga76

    Zveruga76

    Регистр.:
    20 июл 2013
    Сообщения:
    281
    Симпатии:
    416
    Какая версия?
     
  3. idema

    idema Постоялец

    Регистр.:
    16 ноя 2013
    Сообщения:
    75
    Симпатии:
    22
  4. Zveruga76

    Zveruga76

    Регистр.:
    20 июл 2013
    Сообщения:
    281
    Симпатии:
    416
    В файле /controllers/front/GuestTrackingController.php найти строки 82...88 и закомментировать проверки что зашел гость:
    Код:
                if (empty($order_reference) && empty($id_order)) {
                    $this->errors[] = Tools::displayError('Please provide your order\'s reference number.');
                } elseif (empty($email)) {
                    $this->errors[] = Tools::displayError('Please provide a valid email address.');
                } elseif (!Validate::isEmail($email)) {
                    $this->errors[] = Tools::displayError('Please provide a valid email address.');
                } elseif (!Customer::customerExists($email, false, false)) {
                    $this->errors[] = Tools::displayError('There is no account associated with this email address.');
    //            } elseif (Customer::customerExists($email, false, true)) {
    //                $this->errors[] = Tools::displayError('This page is for guest accounts only. Since your guest account has already been transformed into a customer account, you can no longer view your order here. Please log in to your customer account to view this order');
    //                $this->context->smarty->assign('show_login_link', true);
                } elseif (!count($order_collection)) {
                    $this->errors[] = Tools::displayError('Invalid order reference');
    //            } elseif (!$order_collection->getFirst()->isAssociatedAtGuest($email)) {
    //                $this->errors[] = Tools::displayError('Invalid order reference');
                } else {
    
    Но по-правильному (если умеете), лучше, конечно, сделать оверрайд для контроллера GuestTrackingControllerCore и вынести туда эту функцию postProcess() и удалить строки.
     
    _sashok и idema нравится это.
  5. idema

    idema Постоялец

    Регистр.:
    16 ноя 2013
    Сообщения:
    75
    Симпатии:
    22
    Сделала спасибо большое. Еще если ты вошел в аккаунт, то с guest-tracking перекидывает сразу на историю заказов, это в этом же файле копаться?
    Нашла, с 36 строки
    Код:
     // public function init()
      //  {
      //      parent::init();
      //      if ($this->context->customer->isLogged()) {
      //          Tools::redirect('history.php');
      //      }
      //  }
    Примерно представляю, но не очень умею) А чем лучше?
     
    Последнее редактирование: 18 июл 2019
  6. Zveruga76

    Zveruga76

    Регистр.:
    20 июл 2013
    Сообщения:
    281
    Симпатии:
    416
    Тогда изменения не затрутся при обновлении престы. Ну и банально - правила хорошего тона :)
     
    Belena27089 нравится это.