Opencart 2.3 — показывает скидку в избранном расширении

Я новичок в Opencart и пытаюсь отобразить скидку за количество в избранных продуктах — безуспешно. Я использую Opencart 2.3. По сути, я бы хотел добиться передачи переменных quantity а также price из файла контроллера featured.php в файл просмотра featured.tpl,

Вот что я попробовал:

1) В файле /catalog/controller/extension/module/featured.php после $product_info = $this->model_catalog_product->getProduct($product_id); Я добавил следующий код:

$discounts = $this->model_catalog_product->getProductDiscounts($product_id);

$data['discounts'][] = array();

foreach ($discounts as $discount) {
$data['discounts'][] = array(
'quantity' => $discount['quantity'],
'price' => $discount['price']
);
}

2) В файле /catalog/view/theme/default/template/extension/module/featured.tpl Я добавил следующий код:

<?php foreach ($discounts as $discount) { ?>
<span>
<?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?>
</span><br>
<?php } ?>

Любая помощь будет очень высоко ценится!

Я пробовал несколько других вариантов кода (например, предоставленное решение Вот), но безуспешно.

0

Решение

Перейдите в каталог \ language \ en-gb \ extension \ module \ featured.php
Добавьте следующий код:

$_['text_discount']            = ' or more ';

Перейдите в каталог \ controller \ extension \ module \ featured.php
Найдите следующие строки кода:

$data['heading_title'] = $this->language->get('heading_title');

Добавьте следующие строки кода:

$data['text_discount'] = $this->language->get('text_discount');

Найдите следующие строки кода:

foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);

Добавьте следующие строки кода:

$discounts = $this->model_catalog_product->getProductDiscounts($product_id);

$product_info['discounts'] = array();

foreach ($discounts as $discount) {
$product_info['discounts'][] = array(
'quantity' => $discount['quantity'],
'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'])
);
}

Найдите следующие строки кода:

$data['products'][] = array(
'product_id' => $product_info['product_id'],

Чуть ниже добавьте следующие строки кода:

'discounts'=>$product_info['discounts'],

Теперь перейдите в каталог \ view \ theme \ YOUR_ACTIVE_THEME \ template \ extension \ module \ featured.tpl

Найдите следующие строки кода:

 <div class="button-group">
<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');">

Добавьте над ним или где-либо, что вы хотите показать, но нужно внутри массива продукта:

<?php if ($product['discounts']) { ?>
<ul>
<hr>
<?php foreach ($product['discounts'] as $discount) { ?>
<li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li>
<?php } ?>
</ul>
<?php } ?>

Вы можете скачать ocmod на Показать Скидки на популярные модули Ocmod OpenCart 2.3.02

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]