[Помощь] VM3 - как убрать в цене "+/-" для разных размеров?

tromm

Постоялец
Регистрация
8 Авг 2013
Сообщения
67
Реакции
22
Здравствуйте!
Изначально, в VM при добавлении нескольких размеров в карточке товара при помощью настраиваемого поля «Атрибут корзины», цены отображаются со знаками "+" и/или "-"
Для просмотра ссылки Войди или Зарегистрируйся

В VM2 если, в файле administrator/components/com_virtuemart/models/customfields.php отредактировать кусок кода, который отвечает за вывод настраиваемого поля «Атрибут корзины»,
список с размерами приобретает гораздо более понятный и привычный вид, т.е. без "+" перед суммой, а сразу с отображением полной стоимости для каждого размера.
Для просмотра ссылки Войди или Зарегистрируйся
Вот что для этого необходимо изменить в customfields.php:
Добавим перед кодом строку:
Код:
$base_price=$product->product_price;
И заменить строку
Код:
$price = self::_getCustomPrice($productCustom->custom_price, $currency, $calculator);
На
Код:
$price = $currency->priceDisplay($calculator->
calculateCustomPriceWithTax($base_price+$productCustom->custom_price)) ;
В итоге будет
Код:
$base_price=$product->product_price;
if ($group->field_type == 'V') {
$default = current ($group->options);
foreach ($group->options as $productCustom) {
$price = $currency->priceDisplay($calculator->
calculateCustomPriceWithTax($base_price+$productCustom->custom_price)) ;
$productCustom->text = $productCustom->custom_value . '  ' . $price;
}


Вопрос - как это же проделать для VM3?
Строки кода в файле customfields.php для VM3 отличаются от VM2
 
по другому вопрос решал
в administrator\components\com_virtuemart\helpers\calculationh.php
$basePriceShopCurrency = $basePriceShopCurrency + $variant;
меняем на
$basePriceShopCurrency = $variant;
+ перед ценой в customfields.php, так же как и у вас убирал
 
по другому вопрос решал
Вообще супер решение!!!
Теперь, при добавлении нескольких размеров в карточке товара я указываю итоговую стоимость для каждого размера, включая основной.
+ перед ценой в customfields.php, так же как и у вас убирал
У меня немного другое решение.
В customfields.php нашел строчку:
Код:
static function _getCustomPrice($customPrice, $currency, $calculator) {
     if ((float)$customPrice) {
       $price = strip_tags ($currency->priceDisplay ($calculator->calculateCustomPriceWithTax ($customPrice)));
       if ($customPrice >0) {
         $price ="+".$price;
       }
     }
и в $price ="+".$price заменил "+" на "-" $price =" - ".$price

Теперь имеем следующее отображение:

5х20 см - 30,00 руб
6х24 см - 40,00 руб
 
Назад
Сверху