Никак не могу решить проблему выбора метода доставки в корзине в зависимости от категории выбранного товара. Категорию каждого товара в корзине я получаю, а вот сменить метод доставки в зависимости от категории набранных в корзину товаров никак не получается. Использую 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. Правда, мои продолжительные поиски решения этой проблемы в интернете так и не привели к успеху. Поэтому и решился просить помощи у профессионалов.
Вопрос снят, все получилось, и именно с использованием кода, взятого из функции setshipment из файла cart.php в папке helpers.
Не забывай, что после обновления магазина этот функционал легко может слететь. В идеале - написать плагин для VM. 90%, что такое уже есть, покопайся на JED!