Виртуемарт 2.0.26 - ONE PAGE CHECKOUT
В продолжение предыдущей статьи про упрощение корзины в virtuemart
хотелось бы рассказать про замечательный плагин One Page, который
позволяет вывести все поля в корзине на одну страницу. Благодаря этому
покупатель сможет оформить покупку в один клик. Странно, что такой
функционал не предусмотрен по умолчанию и хорошо, что есть решения
реализующие это
В статье речь пойдет про версию One Page 3.6.
СКАЧАТЬ ONE PAGE 3.6
СКАЧАТЬ ONE PAGE 4.3
После скачивания нужно разархивировать архив.

Далее скопируем папку html в templates/ваш_шаблон. В итоге в папке с шаблоном должна появится папка html, внутри нее папка com_virtuemart с папкой cart, в которой будут лежать шаблоны страниц корзины. Благодаря этим шаблонам все поля будут выводится на одной странице.
Если после этого у вас все заработало, то это хорошо, но скорее всего нужно будет внести некоторые правки в файл templates/ваш_шаблон/html/com_virtuemart/cart/default.php
Находим строку и снимаем с нее комментарий
Получается
А строку
Наоборот комментируем и получаем
После этого все должно работать. Выглядеть это будет примерно так.

Теперь рассмотрим настройки плагина. Заходим менеджер плагинов, находим plg_system_onepage и заходим в него.

P.S. Большая тема на форуме nulled.cc в которой обсуждались проблемы с плагином.
P.P.S. Альтернативное решение с помощью компонента One Page Checkout
А так же при косяке при Отправки заказа может выпадать ошибка
вот ее правка
,
У меня при крыже "Использовать адрес" выдает ошибку (в версии 2.0.22)
is null
var name=item.get('id').replace('shipto_','');
заменил добавил
на
В статье речь пойдет про версию One Page 3.6.
СКАЧАТЬ ONE PAGE 3.6
СКАЧАТЬ ONE PAGE 4.3
После скачивания нужно разархивировать архив.
- plg_system_onepage_vm2.zip — сам плагин
- папка html — файлы, которые нужно будет разместить в папке с шаблоном
- info.txt — небольшая инструкция на английском языке
Далее скопируем папку html в templates/ваш_шаблон. В итоге в папке с шаблоном должна появится папка html, внутри нее папка com_virtuemart с папкой cart, в которой будут лежать шаблоны страниц корзины. Благодаря этим шаблонам все поля будут выводится на одной странице.
Если после этого у вас все заработало, то это хорошо, но скорее всего нужно будет внести некоторые правки в файл templates/ваш_шаблон/html/com_virtuemart/cart/default.php
Находим строку и снимаем с нее комментарий
1
| //echo $this->checkout_link_html; |
1
| echo $this->checkout_link_html; |
1
| echo '<a class="vm-button-correct" href="javascript:void(0);" onclick="submit_order();"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU') . '</span></a>'; |
1
| //echo
'<a class="vm-button-correct" href="javascript:void(0);"
onclick="submit_order();"><span>' .
JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU') .
'</span></a>'; |
Теперь рассмотрим настройки плагина. Заходим менеджер плагинов, находим plg_system_onepage и заходим в него.
- Ship to address checked — при включении это опции будет
автоматически ставится галочка в корзине около «Использовать адрес
оплаты как адрес доставки». Эту опцию я всегда включаю и через стили
скрываю этот блок. Для этого в файл
components/com_virtuemart/assets/css/vmsite-ltr.css можно добавить
123
#div_shipto{display:none;} - Register checked — проверка регистрации. Честно говоря, я так и не понял для чего этот пункт. Скорее всего он нужен если покупка происходит с регистрацией. Если у вас покупка без регистрации, то его можно активировать, а можно и не активировать.
- Use preloader — Если у вас, например, в зависимости от способа доставки меняется цена, то включать эту опцию обязательно, чтобы менялись данные в корзине без перезагрузки страницы. Но в этом случае есть большая вероятность «зависания». Если цена не зависит от доставки , то смело отключайте — все и так будет работать.
P.S. Большая тема на форуме nulled.cc в которой обсуждались проблемы с плагином.
P.P.S. Альтернативное решение с помощью компонента One Page Checkout
А так же при косяке при Отправки заказа может выпадать ошибка
вот ее правка
,
У меня при крыже "Использовать адрес" выдает ошибку (в версии 2.0.22)
is null
var name=item.get('id').replace('shipto_','');
заменил добавил
Код:
ship_to.each(function(item) {
var name=item.get('id').replace('shipto_','');
if(bill_to.getElementById(name)) {
item.set('value',bill_to.getElementById(name).get('value'));
}
});
Код:
ship_to.each(function(item) {
if (item.input!= null) {
var name=item.get('id').replace('shipto_','');
if(bill_to.getElementById(name)) {
item.set('value',bill_to.getElementById(name).get('value'));
}
}
});
Комментарии
Отправить комментарий