[Решено] Как прописать условие вывода div от $price (в коде)

Тема в разделе "OpenCart", создана пользователем Oleg-vt, 26 дек 2016.

Статус темы:
Закрыта.
  1. Oleg-vt

    Oleg-vt

    Регистрация:
    8 май 2013
    Сообщения:
    211
    Симпатии:
    165
    Доброго всем вечера/дня.
    Возник вопрос/задача:
    Хочу прописать вывод DIV в зависимости от цены товара на странице товара.

    Сделал так:

    <?php if ( $price > '5000' ) { ?>
    <div class="custom-tab">
    ...........................
    </div>
    <?php } else { ?>
    <?php } ?>

    Получилась такая картина на сайте:
    У товаров с ценой ниже 5000 - блока нет (ПРАВИЛЬНО)
    У товаров с ценой от 5000 до 10000 - блок есть (ПРАВИЛЬНО)
    У товаров с ценой более 10000 - блока нет (НЕ ПРАВИЛЬНО)

    Как так получается? Как правильно прописывать такие условия?
    Попробовал прописать условие <?php if ( $price > '10000' ) { ?> - блок появился у всех товаров вообще.
     
  2. settr

    settr

    Регистрация:
    12 окт 2016
    Сообщения:
    67
    Симпатии:
    54
    Вы строку сравниваете со строкой, потому как цена это строка (вместе с валютой)
    Для того, чтобы цена была числом, в файле catalog/controller/product/product.php
    найдите (для OC 1.5)
    PHP:
    $this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
    добавьте строку
    PHP:
    $this->data['price_number'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));
    Для OC 2.x всесто $this->data['xxx'] будет $data['xxx']

    В шаблоне сравнивайте с переменной $price_number
    И не берите в кавычки сравниваемое число

    И не забудьте про $this->data['special_number']
    Сделайте по аналогии
     
    Oleg-vt и samuel_L нравится это.
  3. Oleg-vt

    Oleg-vt

    Регистрация:
    8 май 2013
    Сообщения:
    211
    Симпатии:
    165
    Спасибо! Решение помогло!)
     
Статус темы:
Закрыта.