Разработка темы Opencart: цена как число?

StackOverflow https://stackoverflow.com/questions/4661314

  •  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,
    ...

Должен делать то, что вам нужно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top