[Помогите] Убрать вывод цены, если она меньше 1

Тема в разделе "OpenCart", создана пользователем nick885, 26 янв 2014.

  1. nick885

    nick885

    Регистрация:
    14 мар 2013
    Сообщения:
    101
    Симпатии:
    40
    Друзья, есть блок

    Код:
          <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a><p><span class="price-tax"><?php echo $product['model']; ?></span><br /></div>
          <?php if ($product['price']) { ?>
          <div class="price">
            <?php if (!$product['special']) { ?>
            <?php echo $product['price']; ?>
            <?php } else { ?>
            <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
            <?php } ?>
            <!-- <?php if ($product['tax']) { ?>
            <br />
            <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
            <?php } ?> -->
          </div>
          <?php } ?>
    
    Как убрать вывод цены, если она ниже 1?
    Пробовал так
    Код:
          <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a><p><span class="price-tax"><?php echo $product['model']; ?></span><br /></div>
          <?php if ($product['price'])!>1) { ?>
          <div class="price">
            <?php if (!$product['special']) { ?>
            <?php echo $product['price']; ?>
            <?php } else { ?>
            <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
            <?php } ?>
            <!-- <?php if ($product['tax']) { ?>
            <br />
            <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
            <?php } ?> -->
          </div>
          <?php } ?>
    
    Но в итоге пустой экран. Что я делаю не так?

    ps. Подскажите, пожалуйста, как прописать название опции товара в категории
    например
    Код:
      <?php if ($product['название опции'] = Вес товара) { ?>
     
    Последнее редактирование: 26 янв 2014
  2. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    <?php if (!$product['price']) > 1) { ?>
    --- Добавлено, 26 янв 2014 ---
    Опции прописываются в админке
     
    mr-lexus нравится это.
  3. nick885

    nick885

    Регистрация:
    14 мар 2013
    Сообщения:
    101
    Симпатии:
    40
    Все-равно пустой экран=\
    Посмотрел, вроде конфликтов с vqmod нет.

    По опциям не правильно объяснил. Например у товара есть определенныц тип опции с названием Вес товара. Как мне написать функцию:
    Если у товара такой-то тип и названия опций, то не выводить цену.
     
  4. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Ошибка видимо, где то выше, поскольку я дал рабочий код.
    По опциям даже не знаю как лучше и сказать)
    Там все по ID идет проверка как мне помниться, простая = "название не пройдет". Нужно делать проверку по option_id
     
  5. nick885

    nick885

    Регистрация:
    14 мар 2013
    Сообщения:
    101
    Симпатии:
    40
    А как узнать option_id?

    Код:
          <?php if (!$product['price']) > 1) { ?>
          <div class="price">
            <?php if (!$product['special']) { ?>
            <?php echo $product['price']; ?>
            <?php } else { ?>
            <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
            <?php } ?>
            <!-- <?php if ($product['tax']) { ?>
            <br />
            <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
            <?php } ?> -->
          </div>
    
    Включил отображение ошибок
    Parse error: syntax error, unexpected '>' in /var/www/vqmod/vqcache/vq2-catalog_view_theme_sellya_template_product_category.tpl on line 115

    Я не понимаю почему так
     
    Lasted edited by : 3 фев 2014
  6. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    <?php if ($product['price'] != 0) { ?>
     
    nick885 нравится это.
  7. nick885

    nick885

    Регистрация:
    14 мар 2013
    Сообщения:
    101
    Симпатии:
    40
    Я не могу прописать =0, потому что дальше у меня
    Код:
                    <?php if ($product['price'] <= 0) { ?>
                            <a href="<?php echo $product['href']; ?>" class="button"><?php echo $button_zakaz; ?></a>
                            <?php } else { ?>
                            <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
                    <?php } ?>
    
    
    В vqmod cache
    Код:
         <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a><p><span class="price-tax"><?php echo $product['model']; ?></span><br /></div>
          <?php if ($product['price']) { ?>
          <div class="price">
            <?php if (!$product['special']) { ?>
            <?php echo $product['price']; ?>
            <?php } else { ?>
            <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
            <?php } ?>
            <!-- <?php if ($product['tax']) { ?>
            <br />
            <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
            <?php } ?> -->
          </div>
          <?php } ?>
          <div class="cart">
          
            <?php if ($product['price'] <= 0) { ?>
                <input type="button" value="<?php echo $button_zakaz; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
                <?php } else { ?>
     
  8. Serkist

    Serkist

    Регистрация:
    8 фев 2013
    Сообщения:
    367
    Симпатии:
    75
    Так удали часть кода
    Протестируй
    а потом обратно вернешь.

    Еще пришли код файла
    vq2-catalog_view_theme_sellya_template_product_category.tpl
     
  9. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Я и так протестировал и написал решение.
    У меня 1.5.5.1 и вообще пишется вот так <?php if ($price != 0) { ?>
    И все работает.
    Зачем удалять код??? Все правильно там прописано, если цена нуль, то кнопка заказа не появляется.
     
  10. nick885

    nick885

    Регистрация:
    14 мар 2013
    Сообщения:
    101
    Симпатии:
    40
    Главная проблема так и не решена:(
    Как убрать цену, если она меньше 1?
    ">" вызывает ошибку даже если попробовать протестировать кусок в онлайн-проверках.
     
    Последнее редактирование: 28 янв 2014
  11. Serkist

    Serkist

    Регистрация:
    8 фев 2013
    Сообщения:
    367
    Симпатии:
    75
    сообщение было для ТС
    для тестирования нового кода
     
  12. Dsn_8

    Dsn_8

    Регистрация:
    5 фев 2016
    Сообщения:
    7
    Симпатии:
    0
    Как вообще можно подредактировать цену товара? в каком файле находятся цены?
    мне нужно около цены поставить предлог "от"
     
  13. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    437
    Симпатии:
    180
    Dsn_8, Вам нужно не в ценах смотреть, а карточке товара.
    Там подхватывается цена и выводится на странице. Нужно либо прописать там простой вывод слова перед ценой либо добавлять переменную там и в контроллере и выводить переменную.

    Тоже самое надо будет сделать в категориях и везде где показываются цены.
     
  14. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Это всё не нужно. В ОК можно задать префикс и суффикс для цены.

    Идём в Система - Локализации - Валюты. Выбираем нужную валюту и там ставим в поле "Символ слева" любой набор символов, которые должны выводиться перед ценой.
     
  15. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    437
    Симпатии:
    180
    Dotrox, хитро. Но тогда везде где рубли будет приставка "от"
    Например, в корзине будет "сумма доставки от 999 $", "сумма заказа от 1000 $"
    Ну и в других местах, где вызывается цена.

     
  16. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Ну, вот тут как раз можно чуть допилить, чтоб не выводить этот префикс. Это проще, чем лопатить все места вывода цены и там дописывать "от".
    Хотя, всё зависит от задачи: если этот префикс нужно вывести только на странице товара, то проще действительно вписать его на месте, а если везде в магазине - проще через админку и убрать, где не надо потом на месте.

    Точно так же, как и $100 - все эти префиксы и суффиксы используются только для форматированной цены, которая выводиться в виде обычного текста. А в расчётах используется чистая цена из базы (с конвертацией по курсу при необходимости).
     
  17. Dsn_8

    Dsn_8

    Регистрация:
    5 фев 2016
    Сообщения:
    7
    Симпатии:
    0
    Нужно только трем товарам поставить предлог от, а у остальных чтоб осталось как было.
    Как это сделать?
     
  18. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Прямо в шаблоне проверять id товара и добавлять "от", если это нужный товар.
    Шаблон страницы товара - это /catalog/view/theme/ВАШ_ШАБЛОН/template/product/product.tpl
    id текущего товара в переменной $product_id.
     
  19. Dsn_8

    Dsn_8

    Регистрация:
    5 фев 2016
    Сообщения:
    7
    Симпатии:
    0
    у меня 2 шаблона UNIVER и DEFAULT
    ни в одном из них нет номеров ID продукта, но ID я нашел со страницы товара - сайт/index.php?route=product/product&path=77&product_id=139

    может с базой данных нужно работать чтоб это изменить?
     
    Последнее редактирование: 14 фев 2016
  20. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Если вы искали именно число, то откройте исходный код страницы в браузере и посмотрите на кнопку купить. А нормальный способ - это смотреть в админке на ссылку редактирования конкретного товара.

    Что изменить? У вас на странице должна быть переменная $product_id, её содержимое вы должны сравнить с id тех товаров, для которых нужно выводить префикс и если какой-то из этих id совпадёт - выводите префикс.

    Саму переменную на странице искать не надо. Если сомневаетесь, объявлена ли она, просто впишите куда-нибудь возле кнопки купить это:
    PHP:
    <?php echo $product_id?>
    И увидите в браузере возле кнопки купить id текущего товара.