Разработка темы Opencart: цена как число?
-
10-10-2019 - |
Вопрос
Мне нужно отображать некоторые продукты по -разному в зависимости от их цены. Я надеялся, что смогу просто проверить значение $price
переменная из соответствующих файлов темы, но $price
Содержит строку форматированной валюты. А поскольку OpenCart поддерживает различные валютные форматы, нет простого, надежного способа преобразования цен на цены в цифры.
Я посмотрел в классе контроллера продукта, ControllerProductProduct
. Анкет Насколько я могу судить, OpenCart не вызывает числовую цену для просмотров. Я мог бы изменить класс контроллера, но я бы предпочел не потому, что это усложнит обновления.
Я что -то упустил из виду? Нет ли простого способа провести числовое сравнение по цене из темы Opencart?
Решение 2
К сожалению, ответ - нет, OpenCart не обнаруживает числовые ценовые значения темам. Вам придется изменить основные файлы, которые Брэд объясняет, как сделать.
Другие советы
Глядя на v1.4.9.4 в product.php (ControllerProductProduct
) Я вижу следующий код, который устанавливает форматированную стоимость цены, о которой вы говорите:
if ($discount) {
$price = $this->currency->format($this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = $this->currency->format($this->tax->calculate($result['price'],$result['tax_class_id'], $this->config->get('config_tax')));
Почему бы тебе не изменить это, чтобы быть следующим ...
if ($discount) {
$price_num = $this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax'));
$price = $this->currency->format($price_num);
} else {
$price_num = $this->tax->calculate($result['price'],$result['tax_class_id'], $this->config->get('config_tax'));
$price = $this->currency->format($price_num);
И затем несколько строк от этого вы можете передать это значение $ price_num в шаблон, добавив следующее:
$this->data['products'][] = array(
'product_id' => $result['product_id'],
...
'price' => $price,
'price_num' => $price_num,
...
Должен делать то, что вам нужно