USD
Дополнения для Opencart
Всё самое необходимое для разработки сайта на CMS Opencart

Нужен хороший, но недорогой хостинг?

Используйте Ukrlines Рекомендуем SSL хостинг + HTTP/2 (от 1.70$)

Покупай на 10$

И получай VIP на 49 дней!

Статус VIP даёт возможность скачивать любые модули совершенно бесплатно!

Как вывести скидку в процентах в шаблоне Opencart?

Как вывести скидку в процентах в шаблоне Opencart?

В этой статье вы узнаете как вывести скидку в процентах в шаблоне CMS Opencart.


В интернете почему-то крайне мало рабочих решений этой проблемы. В основном все модули и статьи написаны для административной части, что бы именно там менять цены в процентном соотношении.


Но мы с вами будем делать скидки и акции в % конкретно для клиентов, ведь для продаж лучше влияент именно процентная скидка, чем "старая цена" в цифрах.


Как добавить скидку в процентах для категорий и модулей?


Для первого раза можно взять любой файл модуля, категории, либо страницы товаров со скидкой.


В этой статье будем использовать файлы:


  • "/catalog/controller/module/special.php"
  • "/catalog/view/theme/default/template/module/special.tpl"

Шаг №1. Вносим коррективы в контроллер - (/catalog/controller/module/special.php)


Находим:

if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));} else {$special = false;}

И заменяем на:

if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));$skidka = round(100-($result['special']/($result['price']/100)));} else {$skidka = false;$special = false;}

После находим:

$data['products'][] = array(

Под строкой:

'special' => $special,

Вставляем:

'skidka' => $skidka,

Внимание! Некоторые модули место $result используют $product_info, в таком случае меняем строку:

$skidka = round(100-($result['special']/($result['price']/100)));

на

$skidka = 100-($product_info['special']/($product_info['price']/100));

Шаг №2. Вносим правки в шаблон (/catalog/view/theme/default/template/module/special.tpl)


Ищем:

<span class="price-old"><?php echo $product['price']; ?></span><span class="price-new"><?php echo $product['special']; ?></span>

Добавляем:

<span class="procent"><?php echo $product['skidka']; ?>%</span>

Как добавить скидку в процентах для карточки товара?


Шаг №1. Меняем код в контроллере - (/catalog/controller/product/product.php)


Находим:

if ((float)$product_info['special']) { $this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));} else {$this->data['special'] = false;}

И заменяем на:

if ((float)$product_info['special']) {$this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));$this->data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));} else {$this->data['special'] = false;$this->data['skidka'] = false;}

Внимание! Для Opencart 2.x меняем строку:

$this->data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));

на:

$data['skidka'] = 100-($product_info['special']/($product_info['price']/100));

Шаг №2. Редактируем шаблон карточки товара (/catalog/view/theme/default/template/product/product.tpl)


Находим:

<span class="price-old"><?php echo $product['price']; ?></span><span class="price-new"><?php echo $product['special']; ?></span>

И добавляем ниже или выше:

<span class="procent"><?php echo $product['skidka']; ?>%</span>

После чего Вы можете смело настраивать остальные модули и страницы, которые выводят товар.


Стилизация вывода процентов на CSS - ваше домашнее задание. Шутка, мы считаем, если вы способы залезть в PHP + HTML код даже на таком начальном уровне, то стилизовать скидку в % не составит никакого труда :)


Вопросы и пожелания можете оставлять в комментариях!

Комментарии (2)

Пожалуйста, поставьте свою оценку

Случайные модули

Дополнения из любой категории