Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Ссылка из письма заказа ведет не туда если пользователь logout


Dimyan

Recommended Posts

Здравствуйте!

Прошу прощения если тема уже поднималась, но я не смог найти.

Ситуация такая:

После оформления заказа приходит письмо с деталями заказа:

Для просмотра Вашего заказа перейдите по ссылке: http:// shop-url/index.php?route=account/order/info&order_id=4

Если по ней перейти когда клиент авторизован на сайте, то все нормально, переход осуществляется в историю заказа.

А вот если клиент не авторизован, то появляется форма login и после того как залогинешся, переход осуществляется в корзину куда автоматически добовляются все товары которые были в заказе указанном как параметр в предедущей ссылке.

Подскажите пожалуйста, что это за ерунда и как избавится, нахрапом роутинг opencarta понять у меня не получилось.

Надіслати
Поділитися на інших сайтах


Дело в том, что в контроллере, отвечающем за просмотр заказа (account/order/info), для незалогиненного пользователя в сессии сохраняется неверная ссылка для редиректа после входа:

if (!$this->customer->isLogged()) {
   $this->session->data['redirect'] = $this->url->link('account/order', 'order_id=' . $order_id, 'SSL');
  // После входа пользователь автоматически проследует по этой ссылке
   $this->redirect($this->url->link('account/login', '', 'SSL'));
	 }
Но дело в том, что это другой метод данного контроллера (account/order/index), который отвечает за повтор заказа, причем данному методу передается номер заказа, который пользователь изначально хотел просмотреть по ссылке из письма, т.е. все товары из данного заказа попадут в корзину и пользователь будет перенаправлен на корзину/оформление заказа.

Исправляется это корректировкой ссылки для редиректа после входа, то есть в методе account/order/info нужно найти формирование ссылки

$this->session->data['redirect'] = $this->url->link('account/order', 'order_id=' . $order_id, 'SSL');
и заменить ее на правильную

$this->session->data['redirect'] = $this->url->link('account/order/info', 'order_id=' . $order_id, 'SSL');
Данный баг обнаружил только в 1.5.3 (дефолтном и ocstore)
  • +1 5
Надіслати
Поділитися на інших сайтах

Спасибо deeman. А то некоторые мои клиенты видимо по этой причине и косячили с заказами. Вместо того, чтобы зайти свой заказ просмотреть, начинали точно такой же оформлять, или жаловались, почему как ни зайдут по ссылке из письма, так в корзине все удваивается и удваивается.

Надіслати
Поділитися на інших сайтах


  • 7 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.