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

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Здравствуйте всем! С наступившим новым годом!
Возник, видимо, не совсем тривиальный вопрос (поскольку ответ на него по на форуме пока не нашел).
На странице категории при использовании дочерних товаров (в частности, выбирается цвет товара с использованием плагина stockablecustomfields) нет возможности кинуть товар в корзину напрямую, не заходя на страницу товара.
Выходит сообщение для пользователя: "Выберите вариант", которое формируется в файле: components/com_virtuemart/sublayouts/addtocartbtn.php следующим кодом:

echo '<span name="addtocart" class="addtocart-button-disabled" title="'.vmText::_( 'COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT' ).'" >'.vmText::_( 'COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT' ).'</span>';

Естественно, оно неактивно и может вогнать слишком задумчивого пользователя в полный ступор - сколько не клацай по этой "предупреждалке", никуда не переходишь... Включив голову, клиент может, конечно, перейти по ссылке, кликнув на картинку товара, или на название. А если она (голова) принципиально не включается, то просто уйдет с сайта, разозлившись на весь белый свет!
Короче, необходимо сделать это "сообщение" активной ссылкой на карточку товара. Но попытки подставить сюда иную конструкцию, например:

echo '<a href="index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id.'">'.vmText::_ ( 'COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT' ).'</a>'

или иной вариант ни к чему не привели. Отправляет куда угодно, только не на страницу товара. Я недавно начал разбираться в VM3 и пока разобраться с этим моментом не вышло. Думаю, наверняка уже кто-то озадачивался подобным вопросом.
Буду весьма благодарен за подсказку!
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Действительно, просто слабо знаком с vm3...
Все достаточно просто: в данном конкретном случае нужно редактировать не addtocartbtn.php а addtocartbar.php (естественно, не в самом компоненте, а HTML шаблона).
Правда, закомментировать в addtocartbtn
echo '<span name="addtocart" class="addtocart-button-disabled" title="'.vmText::_( 'COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT' ).'" >'.vmText::_( 'COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT' ).'</span>';
в этом случае придется.
А затем добавить else к коду в addtocartbar.php
Код
if(!empty($addtoCartButton)){ ?>
    <span class="addtocart-button">
    <?php echo $addtoCartButton ?>
    </span> <?php
} ?>
Будет так:
Код
if(!empty($addtoCartButton)){ ?>
    <span class="addtocart-button">
    <?php echo $addtoCartButton ?>
    </span> <?php
} else {
    $link = 'index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id=' . $product->virtuemart_category_id.'&virtuemart_product_id=' . $product->virtuemart_product_id. '';
    echo '<a class="addtocart-button-disabled" href ="' . JRoute::_($link). '">' . vmText::_ ('COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT'). '</a>';
}
И все...
Предупреждаю - такой вариант функционален при использовании плагина stockablecustomfields (дочерние товары в данном случае создаются при помощи его, в частности - выбор вариантов цвета). При использовании штатного настраиваемого поля multi variant в этом нет необходимости. (если не ошибаюсь).
Короче, сам спросил - сам ответил...
Всем спасибо!
« Последнее редактирование: 05.01.2016, 15:01:41 от aleks_yug »
*

OutLaw1

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Чувак + в репу, спустя год, ты мне серьезно помог, только я немного подправил код под себя и вуаля имеем разные варианты кнопки «купить» («добавить в корзину», «перейти в товар» и просто надпись «выберите вариант»).
Я ещё добавил условие в файле addtocartbtn.php
Код
if($viewData['orderable']) {
echo '<input type="submit" name="addtocart" class="addtocart-button" value="'.vmText::_( 'COM_VIRTUEMART_CART_ADD_TO' ).'" title="'.vmText::_( 'COM_VIRTUEMART_CART_ADD_TO' ).'" />';
} else{
$view = JRequest::getVar('view', null);
if ($view == "category"){} else {
    echo '<span name="addtocart" class="addtocart-button-disabled" title="'.vmText::_( 'COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT' ).'" >'.vmText::_( 'COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT' ).'</span>';
}}

И тем самым в каталоге одно, а в карточке другое
У меня дочерки как раз с помощью стандартных multivariant, но всё работает
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Скачать - Управление товарами в VirtueMart - в таблиц

Автор gartes

Ответов: 45
Просмотров: 9829
Последний ответ 17.05.2023, 14:53:27
от mansonfaust
Отображение полей CF в карточке товара

Автор farmer66

Ответов: 2
Просмотров: 1102
Последний ответ 17.02.2023, 13:39:18
от farmer66
Как сделать разделение цены по 3 разряда? Решено

Автор varella

Ответов: 13
Просмотров: 1278
Последний ответ 28.10.2022, 19:32:37
от marksetter
Вывод изображений настраиваемого поля в карточке товара

Автор wasssup

Ответов: 0
Просмотров: 1235
Последний ответ 05.07.2022, 08:51:19
от wasssup
как изменить цену всем товарам в VirtueMart 3 ?

Автор ShamilHan

Ответов: 5
Просмотров: 2672
Последний ответ 11.03.2022, 21:12:37
от Zeobr