0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 7130 Просмотров
*

Zaicev

  • Захожу иногда
  • 120
  • 2 / 0
Здравствуйте!
У меня есть такая проблема, Клиент который нажимает который на главной странице нажимает кнопку купить и потом продолжить покупку, то попадает по адресу "/component/virtuemart/"  ну я не хочу, чтобы человека перекидывало, нужно чтобы человек оставался на той же странице.
Можете помочь исправить это ?
VirtueMart 2.0.1

Буду очень благодарный, а вот сам кусок шаблона этой кнопки


      <?php // Continue Shopping Button

      if ($this->continue_link_html != '') {

         echo $this->continue_link_html;

      } ?>

   </div>

<div class="clear"></div>

</div>

<?php echo shopFunctionsF::getLoginForm($this->cart,false);



а вот уже модуль корзины


   $categoryLink = '';
         $continue_link = JRoute::_('index.php?option=com_virtuemart' . $categoryLink);
         $virtuemart_product_ids = JRequest::getVar('virtuemart_product_id', array(), 'default', 'array');
         $errorMsg = JText::_('COM_VIRTUEMART_CART_PRODUCT_ADDED');
         if ($cart->add($virtuemart_product_ids, $errorMsg )) {

            $this->json->msg = '<a class="continue" href="' . $continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
            $this->json->msg .= '<a class="showcart floatright" href="' . JRoute::_("index.php?option=com_virtuemart&view=cart"). '">' . JText::_('COM_VIRTUEMART_CART_SHOW_MODAL'). '</a>';
            if ($errorMsg) $this->json->msg .= '<div>'.$errorMsg.'</div>';
            $this->json->stat = '1';
         } else {
            //// $this->json->msg = '<p>' . $cart->getError(). '</p>';
            $this->json->msg = '<a class="continue" href="' . $continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
            $this->json->msg .= '<div>'.$errorMsg.'</div>';
            $this->json->stat = '2';
         }
      } else {
         $this->json->msg = '<a href="' . JRoute::_('index.php?option=com_virtuemart'). '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
         $this->json->msg .= '<p>' . JText::_('COM_VIRTUEMART_MINICART_ERROR'). '</p>';
         $this->json->stat = '0';
      }
      echo json_encode($this->json);
      jExit();
   }


Подскажите что подправить.
Заранее спасибо!
*

Sergey2

  • Давно я тут
  • 651
  • 15 / 1
"на той же" - это на какой?
Я сделал так:
при нажатии на кнопку "продолжить покупки" пользователь возвращается туда, откуда он попал в корзину. Даже если он удалил товар или еще что. Неважно где он был - в карточке товара или в каталоге.

/components/com_virtuemart/views/cart/view.html.php
находим функцию    private function prepareContinueLink() {
и заменяем ее тело на следующий код:

Код
		if (stripos($_SERVER['HTTP_REFERER'],'/cart')===false) {
$_SESSION['back']=$_SERVER['HTTP_REFERER'];
}
else {
if (empty($_SESSION['back'])) {
$_SESSION['back']='/';
}
}
$continue_link = $_SESSION['back'];

$continue_link_html = '<a class="continue_link" href="' . $continue_link . '" ><span>' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</span></a>';
$this->assignRef('continue_link_html', $continue_link_html);
$this->assignRef('continue_link', $continue_link);
и в начало файла второй строкой надо добавить
Код
session_start();
смысл работы следующий: при заходе в корзину в переменную сессии запоминается откуда пришел пользователь и именно эта переменная используется в качестве обратной ссылки для "продолжить покупки". Если пользователь удаляет товар, т.е.. из корзины заходит в корзину, то переменная не изменяется, так как перед установкой этой переменной мы проверяем, если из корзины, то оставляем старую и не меняем.
*

cvoboda

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Скажите, а как можно сделать, чтобы при добавлении товара в корзину в всплывающем окне при нажатии кнопки "продолжить покупки" покупатель оставался в той же карточке товара?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Кнопку продолжить покупки я замещал таким кодом. И он работает
Код: php-brief
<?php
$session = &JFactory::getSession();
if ($_SERVER["HTTP_REFERER"] !=JFactory::getURI()->toString()) $session->set("mylink",  $_SERVER["HTTP_REFERER"]);
$mylink = $session->get("mylink", $_SERVER["HTTP_REFERER"]);
?>
далее где нужно вставить кнопку
<a href="<?php echo $mylink;?>">Назад</a>
*

cvoboda

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Кнопку продолжить покупки я замещал таким кодом. И он работает
Код: php-brief
<?php
$session = &JFactory::getSession();
if ($_SERVER["HTTP_REFERER"] !=JFactory::getURI()->toString()) $session->set("mylink",  $_SERVER["HTTP_REFERER"]);
$mylink = $session->get("mylink", $_SERVER["HTTP_REFERER"]);
?>
далее где нужно вставить кнопку
<a href="<?php echo $mylink;?>">Назад</a>

Данный код вы вставляли в /components/com_virtuemart/views/cart/view.html.php ?  Куда нужно вставить код?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код нужно вставлять в место вывода. Основное отличие от js в том что записывается в сессию адрес страницы с которой пришли при условии что страница адрес ее изменился. Потому обновляй не обновляй страницу делай в корзине операции, ты все равно вернешься на страницу с которой пришел
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

После обновления CMS до 3.9.0 перестал работать One Page Checkout

Автор fireman

Ответов: 4
Просмотров: 1808
Последний ответ 20.11.2018, 14:06:28
от fireman
СМС оповещение после заказа

Автор stardel

Ответов: 0
Просмотров: 849
Последний ответ 07.03.2017, 23:19:19
от stardel
Вывод товара и текста после оформления заказа

Автор lalalag

Ответов: 0
Просмотров: 861
Последний ответ 07.11.2016, 18:07:45
от lalalag
Не приходят уведомления на имаил, после заказа товара на сайте

Автор stylus83

Ответов: 0
Просмотров: 881
Последний ответ 16.10.2016, 16:49:53
от stylus83
Сделать редирект после входа в аккаунт

Автор stardel

Ответов: 0
Просмотров: 844
Последний ответ 16.08.2016, 16:56:04
от stardel