Здравствуйте.
Использую VirtueMart 2.0.18a. Нужно, чтобы у некоторых товаров вместо цены отображалось "цена предоставляется по запросу". Поделитесь пожалуйста опытом или соображениями, как это можно сделать.
Решение использовал такое:
Поскольку по умолчанию в карточке товара была кнопка "Задать вопрос по товару", то осталось в принципе убрать цену и, по желанию, вывести какое-то сообщение. В моём случае я вывел картинку с надписью "цена по запросу". Картинку для этого загнал в сайт\components\com_virtuemart\assets\images\availability, назвал ask-price.jpg, после чего её можно было выбирать в закладке Статус в карточке каждого товара.
Теперь осталось скрыть цену в детальном описании и в представлении категории.
1. Детальное представление товара:
а) в файле сайт/templates/шаблон/html/com_virtuemart/productdetails/default.php(предварительно скопированном из похожей оригинальной папки компонента VM)
перед строкой
echo $this->loadTemplate('addtocart');
ставим условие подгрузки кнопки "Добавить в корзину"
if ($this->product->product_availability != "ask-price.jpg")
б) в файле сайт/templates/шаблон/html/com_virtuemart/productdetails/default_showprices.php (--//--)
перед строкой вывода цены
echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);
надо опять же поставить условие
if($this->product->product_availability != "ask-price.jpg")
2. Представление категории товаров:
в файле сайт/templates/шаблон/html/com_virtuemart/category/default.php (--//--)
а) скрываем цену подобным образом
перед
echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices);
ставим
if( $product->product_availability != "ask-price.jpg")
б) если мы хотим вывести картинку "Цена по запросу" и в категории товаров, то в том же файле после:
echo $this->currency->createPriceDiv ('unitPrice', $unitPriceDescription, $product->prices);
ставим код из вашего сайт/templates/шаблон/html/com_virtuemart/productdetails/default.php
который выводит картинку доступности товара, начинается комментарием // Availability Image. У меня это код:
$stockhandle = VmConfig::get('stockhandle', 'none');
if (($product->product_in_stock - $product->product_ordered) < 1) {
if ($stockhandle == 'risetime' and VmConfig::get('rised_availability') and empty($product->product_availability)) {
?> <div class="availability">
<?php echo (file_exists(JPATH_BASE . DS . VmConfig::get('assets_general_path'). 'images/availability/' . VmConfig::get('rised_availability')))? JHTML::image(JURI::root(). VmConfig::get('assets_general_path'). 'images/availability/' . VmConfig::get('rised_availability', '7d.gif'), VmConfig::get('rised_availability', '7d.gif'), array('class' => 'availability')) : VmConfig::get('rised_availability'); ?>
</div>
<?php
} else if (!empty($product->product_availability)) {
?>
<div class="availability">
<?php echo (file_exists(JPATH_BASE . DS . VmConfig::get('assets_general_path'). 'images/availability/' . $product->product_availability))? JHTML::image(JURI::root(). VmConfig::get('assets_general_path'). 'images/availability/' . $product->product_availability, $product->product_availability, array('class' => 'availability')) : $product->product_availability; ?>
</div>
<?php
}
}