Делаю интернет-магазин Joomla 1.5 + Virtuemart 1.1.8. Шаблон очень специфичный: главная страница — черная, внутренние — белые, т.е. интернет-магазин на белом фоне.
И тут случилась такая проблема: пользователь добавляет товар в корзину, потом вдруг решает удалить его из корзины, жмет на удаление и virtuemart при этом перенаправляет его на index.php, а там у нас черный фон — печаль. Тоже самое происходит, если пользователь обновляет количество товаров.
Стал искать в чем дело. Смотрю фаербагом, и вижу форму на странице «Корзина»:
<form style="display: inline;" action="http://site.ru/index.php" method="post"> .... </form> |
Вместо index.php необходимо передать адрес текущей страницы. Для этого открываем файл /administrator/components/com_virtuemart/html/basket.php
Ищем строку:
$action_url = $mm_action_url.basename($_SERVER['PHP_SELF']); |
Меняем ее на:
$action_url = $mm_action_url.basename($_SERVER['REQUEST_URI']); |
Теперь при обновлении количества товаров или удалении из корзины virtuemart будет оставлять вас на текущей странице. Сохраняемся и радуемся.
1 июня.
Проблема затянулась:) Теперь обнаружил такую же проблему: при обновлении (заполнении) покупателем адреса доставки, его также перебрасывало на index.php. Каким то шестым чувством полез в дебри virtuemart’a, а именно в файл:
www/administrator/components/com_virtuemart/classes/ps_userfield.php
~287 строка:
echo '<form action="'. $mm_action_url .basename($_SERVER['PHP_SELF']) .'" method="post" name="adminForm">'; |
В этой строке нам нужно заменить PHP_SELF на REQUEST_URI. На этом пока работает как надо.
Стоит 2 шаблона — главная и для магазина. При переходе в корзину шла переадресация на index.php шаблона главной. То же с удалением товара и его обновлением. Помогло следующее:
— для входа в корзину в папке /components/com_virtuemart/themes/default/templates/product_details/includes/
внёс изменения в файл addtocart_form.tpl.php.
В нем в строке 21
<form action="index.php» method=»get» name=»addtocart» id=»» class=»addtocart_form» get_cfg( ‘useAjaxCartActions’, 1 ) && !$notify ) { echo ‘onsubmit=»handleAddToCart( this.id );return false;»‘; } ?>>
заменил РОST на GET. Всё заработало.
Для обновления и очистки корзину такую же замену делал в файле, который здесь рассматривали: basket.php. В строках 148 и 159.
Вопрос по корзине (может быть Вы знаете)?
Добавляю товар в корзину. Модуль мини-коризны обновляется. Показывается сумма товара и его количество. Далее, нажимаю кнопку «Оформить заказ». Всплывает окно (так и задумано) в котором я ввожу все свои данные и нажимаю «Подтвердить заказ». В этом же всплывающем окне осуществляется переход на другую страницу, информирующую об успешном завершении заказа. Закрываю окошко.
Супер! Если бы не одно но…
Страница с которой открывалось всплывающее окно до сих содержит 1 товар на сумму 490р. Но если перейти на другую страницу, то корзина становится пустой.
Как я мог бы сделать так, чтобы после завершения заказа во всплывающем окне осуществлялся бы редирект на страницу магазина на той странице, с которой у меня открылось всплывающее окно?
К сожалению, не знаю. Virtuemart давно не использовал.
Благодарю, вопрос решился, с решением помог один хороший человек, за что ему огромная благодарность!
GreyBox нужен для того, чтобы не перегружалась страница, откуда вызывается popup окно.
А мне он нужен на самом деле, только для «красивости»
Захожу: в components/com_virtuemart/js/greybox/gb_script.js
меняю
Код:
this.reload_on_close=false;
на код:
this.reload_on_close=true;
и код:
window.location.reload();
на Код:
window.location.reload(true);
Получилось!
В итоге после оформления заказа во всплывающем окне, а потом закрывая его, основная страница (та, с которой открывалось всплывющее окно заказа) обнуляет корзину — «в вашей корзине нет товара».
подскажите, в чем ошибка на сайте, joomla 1.5+virtuemart 1.1+sh404sef
при переходах по страницам сайта на главную вылезает ошибка 404, это если ссылка сайт.ру/категория/товар.html нажимаю на логотип чтобы перейти на главную страницу, ошибка 404. если же переходить также на лого(главную) по ссылке сайт.ру/категория.html то без ошибки переходит
спасибо)
При переходе на «сайт.ру» ошибки нет? Тогда попробуйте в шаблоне исправить ссылку на логотип:
спасибо! помогло просто поставить / в ссылке, и переходит нормально)
<img src="templateurl();?>/files/logo0000.gif» alt=»» />
и еще интересно как вы избавились от vmchk ? наверняка столкнулись)
Не сталкивался. Сторонними компонентами для ЧПУ не пользовался.
Рад, что помогло.
У тебя на сайте используется несколько шаблонов?
Один.
Дорогой уважаемый коллега! СПАСИБО!!!!!!!!!!!!!!!!!!!!!! Peace bro
аналогичная проблема с обновлением удалением товара и изменении адреса доставки только у меня виртуемарт 2…26d самая новая кароче и файлов типа basket нет, находил файлы по тексту «PHP_SELF» менял все и везде не помогло
Здравствуйте, не обновляется корзина и не удаляются данные с формы после оформление заказа. В чем может быть проблема?
Здравствуйте. Возможно в яваскриптах конфликты.