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

idema

Постоялец
Регистрация
15 Ноя 2013
Сообщения
63
Реакции
24
Здравствуйте, в Prestashop есть функция гостевое отслеживание заказа guest-tracking, и работает только для незарегистрированных покупателей. Можно ли как-то переделать его, чтобы могли и зарегистрированные покупатели отслеживать? Просто часть покупателей не смотрят почту, часть не понимает, что можно зайти в личным кабинет и посмотреть статус заказа. Хочу приделать большую кнопку "Отследить заказ", которая выдаст трэк номер или статус заказа. Или может быть какие то другие варианты предложите
Спасибо
 
Здравствуйте, в Prestashop есть функция гостевое отслеживание заказа guest-tracking, и работает только для незарегистрированных покупателей. Можно ли как-то переделать его, чтобы могли и зарегистрированные покупатели отслеживать? Просто часть покупателей не смотрят почту, часть не понимает, что можно зайти в личным кабинет и посмотреть статус заказа. Хочу приделать большую кнопку "Отследить заказ", которая выдаст трэк номер или статус заказа. Или может быть какие то другие варианты предложите
Спасибо
Какая версия?
 
1.6.1.16
 
В файле /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() и удалить строки.
 
В файле /controllers/front/GuestTrackingController.php найти строки 82...88 и закомментировать проверки что зашел гость:
Сделала спасибо большое. Еще если ты вошел в аккаунт, то с guest-tracking перекидывает сразу на историю заказов, это в этом же файле копаться?
Нашла, с 36 строки
Код:
 // public function init()
  //  {
  //      parent::init();
  //      if ($this->context->customer->isLogged()) {
  //          Tools::redirect('history.php');
  //      }
  //  }
Но по-правильному (если умеете), лучше, конечно, сделать оверрайд для контроллера GuestTrackingControllerCore и вынести туда эту функцию postProcess() и удалить строки.
Примерно представляю, но не очень умею) А чем лучше?
 
Последнее редактирование:
Сделала спасибо большое. Еще если ты вошел в аккаунт, то с guest-tracking перекидывает сразу на историю заказов, это в этом же файле копаться?
Нашла, с 36 строки
Код:
// public function init()
  //  {
  //      parent::init();
  //      if ($this->context->customer->isLogged()) {
  //          Tools::redirect('history.php');
  //      }
  //  }

Примерно представляю, но не очень умею) А чем лучше?
Тогда изменения не затрутся при обновлении престы. Ну и банально - правила хорошего тона :)
 
Назад
Сверху