[Помогите] Как убрать кнопку "купить", если цена 0

Тема в разделе "OpenCart", создана пользователем Zul, 26 дек 2013.

  1. Zul

    Zul

    Регистрация:
    26 дек 2013
    Сообщения:
    1
    Симпатии:
    0
    Подскажите как в opencart 1.5.5.1 убрать кнопку купить, если цена 0?
     
  2. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    В файле catalog/view/theme/вашатема/template/product/product.tpl
    Ищем <?php if ($price) { ?>
    Меняем на <?php if ($price !=0) { ?>
    Тоже самое можно сделать для категорий в файле catalog/view/theme/вашатема/template/product/category.tpl
    Можно отключить кнопку корзины, если цена равно нулю, обернув ее вот так:
    Код:
    <?php if ($price !=0) { ?>
          <div class="cart">
            <div><?php echo $text_qty; ?>
              <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
              <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
              &nbsp;
              <input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" />
            </div>
            <div><span>&nbsp;&nbsp;&nbsp;<?php echo $text_or; ?>&nbsp;&nbsp;&nbsp;</span></div>
            <div><a onclick="addToWishList('<?php echo $product_id; ?>');"><?php echo $button_wishlist; ?></a><br />
              <a onclick="addToCompare('<?php echo $product_id; ?>');"><?php echo $button_compare; ?></a></div>
            <?php if ($minimum > 1) { ?>
            <div class="minimum"><?php echo $text_minimum; ?></div>
            <?php } ?>
          </div><?php } ?>
    Думаю принцип понятен
     
    winner7, drvoodoo, orgcom и ещё 1-му нравится это.
  3. winner7

    winner7

    Регистрация:
    6 мар 2013
    Сообщения:
    324
    Симпатии:
    56
    Чет в 1.5.4.1 не работает, другой код?
     
  4. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Все тоже самое.
     
  5. vasiliy

    vasiliy

    Регистрация:
    1 сен 2012
    Сообщения:
    62
    Симпатии:
    5
    В товаре все ок а в категории нет <?php if ($price) { ?> ка в категории отключить кнопку купить?
     
  6. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    В категории полюбому есть это.
     
  7. vasiliy

    vasiliy

    Регистрация:
    1 сен 2012
    Сообщения:
    62
    Симпатии:
    5
    Ну к примеру вот код шаблона по умолчанию то есть стандартного!
    Код:
    <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
    <div id="content"><?php echo $content_top; ?>
      <div class="breadcrumb">
        <?php foreach ($breadcrumbs as $breadcrumb) { ?>
        <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
        <?php } ?>
      </div>
      <h1><?php echo $heading_title; ?></h1>
      <?php if ($thumb || $description) { ?>
      <div class="category-info">
        <?php if ($thumb) { ?>
        <div class="image"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></div>
        <?php } ?>
        <?php if ($description) { ?>
        <?php echo $description; ?>
        <?php } ?>
      </div>
      <?php } ?>
      <?php if ($categories) { ?>
      <h2><?php echo $text_refine; ?></h2>
      <div class="category-list">
        <?php if (count($categories) <= 5) { ?>
        <ul>
          <?php foreach ($categories as $category) { ?>
          <li><a href="<?php echo $category['href']; ?>"><img src="<?php echo $category['thumb']; ?>"><span><?php echo $category['name']; ?></a></span></li>
          <?php } ?>
        </ul>
        <?php } else { ?>
        <?php for ($i = 0; $i < count($categories);) { ?>
        <ul>
          <?php $j = $i + ceil(count($categories) / 4); ?>
          <?php for (; $i < $j; $i++) { ?>
          <?php if (isset($categories[$i])) { ?>
          <li><a href="<?php echo $categories[$i]['href']; ?>"><img src="<?php echo $categories[$i]['thumb']; ?>"><span><?php echo $categories[$i]['name']; ?></span></a></li>
          <?php } ?>
          <?php } ?>
        </ul>
        <?php } ?>
        <?php } ?>
      </div>
      <?php } ?>
      <?php if ($products) { ?>
      <div class="product-filter">
        <div class="display"><b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display('grid');"><?php echo $text_grid; ?></a></div>
        <div class="limit"><b><?php echo $text_limit; ?></b>
          <select onchange="location = this.value;">
            <?php foreach ($limits as $limits) { ?>
            <?php if ($limits['value'] == $limit) { ?>
            <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
            <?php } ?>
            <?php } ?>
          </select>
        </div>
        <div class="product-compare"><a href="<?php echo $compare; ?>" id="compare-total"><?php echo $text_compare; ?></a></div>
        <div class="sort"><b><?php echo $text_sort; ?></b>
          <select onchange="location = this.value;">
            <?php foreach ($sorts as $sorts) { ?>
            <?php if ($sorts['value'] == $sort . '-' . $order) { ?>
            <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
            <?php } ?>
            <?php } ?>
          </select>
        </div>
      </div>
      <div class="product-list">
        <?php foreach ($products as $product) { ?>
        <div>
          <?php if ($product['thumb']) { ?>
          <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
          <?php } ?>
          <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
          <div class="description"><?php echo $product['description']; ?></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 } ?>
          <?php if ($product['rating']) { ?>
          <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
          <?php } ?>
          <div class="cart">
            <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
          </div>
          <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
          <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
        </div>
        <?php } ?>
      </div>
      <div class="pagination"><?php echo $pagination; ?></div>
      <?php } ?>
      <?php if (!$categories && !$products) { ?>
      <div class="content"><?php echo $text_empty; ?></div>
      <div class="buttons">
        <div class="right"><a href="<?php echo $continue; ?>" class="button"><?php echo $button_continue; ?></a></div>
      </div>
      <?php } ?>
      <?php echo $content_bottom; ?></div>
    <script type="text/javascript"><!--
    function display(view) {
        if (view == 'list') {
            $('.product-grid').attr('class', 'product-list');
            
            $('.product-list > div').each(function(index, element) {
                html  = '<div class="right">';
                html += '  <div class="cart">' + $(element).find('.cart').html() + '</div>';
                html += '  <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
                html += '  <div class="compare">' + $(element).find('.compare').html() + '</div>';
                html += '</div>';           
                
                html += '<div class="left">';
                
                var image = $(element).find('.image').html();
                
                if (image != null) {
                    html += '<div class="image">' + image + '</div>';
                }
                
                var price = $(element).find('.price').html();
                
                if (price != null) {
                    html += '<div class="price">' + price  + '</div>';
                }
                        
                html += '  <div class="name">' + $(element).find('.name').html() + '</div>';
                html += '  <div class="description">' + $(element).find('.description').html() + '</div>';
                
                var rating = $(element).find('.rating').html();
                
                if (rating != null) {
                    html += '<div class="rating">' + rating + '</div>';
                }
                    
                html += '</div>';
                            
                $(element).html(html);
            });       
            
            $('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>');
            
            $.totalStorage('display', 'list');
        } else {
            $('.product-list').attr('class', 'product-grid');
            
            $('.product-grid > div').each(function(index, element) {
                html = '';
                
                var image = $(element).find('.image').html();
                
                if (image != null) {
                    html += '<div class="image">' + image + '</div>';
                }
                
                html += '<div class="name">' + $(element).find('.name').html() + '</div>';
                html += '<div class="description">' + $(element).find('.description').html() + '</div>';
                
                var price = $(element).find('.price').html();
                
                if (price != null) {
                    html += '<div class="price">' + price  + '</div>';
                }
                
                var rating = $(element).find('.rating').html();
                
                if (rating != null) {
                    html += '<div class="rating">' + rating + '</div>';
                }
                            
                html += '<div class="cart">' + $(element).find('.cart').html() + '</div>';
                html += '<div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
                html += '<div class="compare">' + $(element).find('.compare').html() + '</div>';
                
                $(element).html(html);
            });   
                        
            $('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>');
            
            $.totalStorage('display', 'grid');
        }
    }
    
    view = $.totalStorage('display');
    
    if (view) {
        display(view);
    } else {
        display('list');
    }
    //--></script>
    <?php echo $footer; ?>
    И в нем нет етой строки. есть такая <?php if ($product['price']) { ?> но такой как вы указали нет она есть итолько в карточке а в модулях и категориях только <?php if ($product['price']) { ?>
     
  8. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Всё правильно. Там где больше одного товара это часть массива $product, который циклом вытягивается из общего массива $products.

    P.S. Вы знаете о существовании знаков пунктуации?
     
  9. vasiliy

    vasiliy

    Регистрация:
    1 сен 2012
    Сообщения:
    62
    Симпатии:
    5
    Ну ето все понятно , но человеку незнающему PHP или плохо знающему как я Сложно понять как из <?php if ($product['price']) { ?> сделать <?php if ($product['$price !=0']) { ?> и не допустить ошибку.
     
  10. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вот так делать как раз не надо. Это должно выглядеть так:
    PHP:
    <?php if ($product['price'] != 0) { ?>
     
  11. vasiliy

    vasiliy

    Регистрация:
    1 сен 2012
    Сообщения:
    62
    Симпатии:
    5
    Во спасибо огромное. Вот про это я и писал!. что обычному юзеру сложно понять и каждая точка играет роль!
    Еще раз спасибо за решение!