Выбор способа доставки и оплаты в зависимости от категории товара

Тема в разделе "Хаки и модификации", создана пользователем Gsay, 08.01.2016.

  1. Offline

    Gsay Недавно здесь

    Регистрация:
    08.01.2016
    Сообщения:
    2
    Симпатии:
    0
    Никак не могу решить проблему выбора метода доставки в корзине в зависимости от категории выбранного товара.
    Категорию каждого товара в корзине я получаю, а вот сменить метод доставки в зависимости от категории набранных в корзину товаров никак не получается.

    Использую Virtuemart 2.6.14.

    По сути понимаю, что мне при наполнении пользователем корзины и анализа категории товаров нужно просто повторить те же действия, которые выполняются в при нажатии кнопки подтверждения способа доставки в форме, описанной в файле select_shipment.php (этот файл находится в папке components/com_virtuemart/views/cart/tmpl). Но вот только не могу понять (заранее извиняюсь за свою необразованность), какой именно код выполняется при нажатии этой кнопки. Потому как аргумент action в этой форме выглядит вот так:

    <form method="post" id="userForm" name="chooseShipmentRate" action="<?php echo JRoute::_('index.php'); ?>" class="form-validate">

    И куда он указывает - мне лично непонятно.

    Пробую указать в корзине указать конкретный id (в данном случае - 2) способа доставки вот так:

    $this->cart->virtuemart_shipmentmethod_id=2;

    Но это никак не влияет на способ доставки в корзине, он остается прежним.
    Понимаю, что алгоритм задания способа доставки в корзине должен быть более "разветвленным", кроме id нужно задавать и shipmentName, и shipmentValue. Но должен же быть какой-то элегантный способ, ведь в файле select_shipment.php все это делается. Вот только вытащить этот код у меня не хватает знаний.

    Попытки использовать public function setshipment из файла cart.php в папке helpers не увенчались успехом.

    Посоветуйте решение, люди добрые!

    Думаю, что задача по принудительной установке способа доставки и оплаты в зависимости от типа выбранных товаров достаточно распространенная и востребованная, и ее решение будет полезно не только мне, но и многим другим сторонникам Virtuemart. Правда, мои продолжительные поиски решения этой проблемы в интернете так и не привели к успеху. Поэтому и решился просить помощи у профессионалов.
     
  2.  
  3. Offline

    Gsay Недавно здесь

    Регистрация:
    08.01.2016
    Сообщения:
    2
    Симпатии:
    0
    Вопрос снят, все получилось, и именно с использованием кода, взятого из функции setshipment из файла cart.php в папке helpers.
     
  4. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Не забывай, что после обновления магазина этот функционал легко может слететь.
    В идеале - написать плагин для VM.
    90%, что такое уже есть, покопайся на JED!
     

Поделиться этой страницей

Загрузка...