Изменить надпись " В корзину" на "Предзаказ"

Тема в разделе "Общие вопросы", создана пользователем and798541dna, 31 окт 2023.

  1. and798541dna

    and798541dna Новичок

    Сообщения:
    21
    Симпатии:
    0
    Здравствуйте, уважаемые форумчане.
    Подскажите пожалуйста, что делаю не так.
    Хочу сделать, если товаров <=0, то на кнопке В КОРЗИНУ изменилось надпись на ПРЕДЗАКАЗ.

    Делаю так - не получается.

    В файле russian/php
    есть
    $_['button_cart'] = 'В корзину';

    я добавил
    $_['button_zakaz'] = 'Предзаказ';

    И в файле product.php
    есть
    $this->data['button_cart'] = $this->language->get('button_cart');

    я добавил
    $this->data['button_cart'] = $this->language->get('button_zakaz');

    и прописал условие, при котором, если товаров < или = 0, то на кнопке выводится надпись из языкового файла

    if ($product_info['quantity'] <= 0) {
    $this->data['button_cart'] = $this->language->get['button_zakaz'];
    } else {
    $this->data['button_cart'] = $this->language->get['button_cart'];
    }

    Но при количестве товаров меньше или = 0, кнопка исчезает совсем.
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.902
    Симпатии:
    1.069
    Возможно не исчезает, а текст пустой и получается размер кнопки 0.
    Обновите кеш модификатора . Да и всегда можно ведь проверить исходник в браузере, чтобы увидеть точно где кнопка.
     
  3. SiteMix

    SiteMix Продвинутый пользователь

    Сообщения:
    1.031
    Симпатии:
    174
    Надо ещё quantity добавить после $data['products'][] = array(
     
    Последнее редактирование: 31 окт 2023
  4. and798541dna

    and798541dna Новичок

    Сообщения:
    21
    Симпатии:
    0
    А можно чуть подробнее, куда добавить и?
     
  5. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    770
    Симпатии:
    102
    if ($product_info['quantity'] <= 0) {
    $this->data['button_cart'] = $this->language->get['button_zakaz'];
    } else {
    $this->data['button_cart'] = $this->language->get['button_cart'];
    }

    Тут в get должны быть круглые скобки (), а не прямоугольные []
     
  6. and798541dna

    and798541dna Новичок

    Сообщения:
    21
    Симпатии:
    0
    АААААА, точно.
    Работает!!!
    Спасибо Вам огромное!!!
     
  7. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    770
    Симпатии:
    102
    Пожалуйста)
     
  8. and798541dna

    and798541dna Новичок

    Сообщения:
    21
    Симпатии:
    0
    Попытался и для категории это применить, но увы, я так понял, что категория не видит количество товаров и, если прописать условие if ($product_info['quantity'] <= 0), то не срабатывает.
    Подскажете?
    А то в товаре ПРЕДЗАКАЗ, а в категории можно кинуть товар в корзину, минуя страницы товара.
     
  9. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    770
    Симпатии:
    102
    А какая версия опенкарта-то?
     
  10. and798541dna

    and798541dna Новичок

    Сообщения:
    21
    Симпатии:
    0
    OcStore 15512 по-моему
     
  11. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    770
    Симпатии:
    102
    Нужно в контроллере catalog\controller\product\category.php после
    'product_id' => $result['product_id'],

    Добавить
    'quantity' => $result['quantity'],

    Ещё добавляете

    $this->data['button_zakaz'] = $this->language->get('button_zakaz');

    В шаблоне отображения catalog\view\theme\default\template\product\category.tpl (если у вас кастомная тема, то в ней нужно править)

    Заменяете строку
    <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />

    Строкой
    <input type="button" value="<?php echo ($product['quantity'] <= 0 ? $button_zakaz : $button_cart); ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
     
  12. and798541dna

    and798541dna Новичок

    Сообщения:
    21
    Симпатии:
    0
    Добрый день.
    В category.tpl (теме не default) у меня такая строка
    <div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" title="<?php echo $button_cart; ?>" class="button"><span><?php echo $button_cart; ?></span></a></div>
     
  13. Tom

    Tom Специалист

    Сообщения:
    705
    Симпатии:
    214
    Попробуйте так.
    HTML:
    <div class="cart">
      <a onclick="addToCart('<?php echo $product['product_id']; ?>');" title="<?php echo ($product['quantity'] <= 0 ? $button_zakaz : $button_cart); ?>" class="button">
        <span><?php echo ($product['quantity'] <= 0 ? $button_zakaz : $button_cart); ?></span>
      </a>
    </div>
     
  14. and798541dna

    and798541dna Новичок

    Сообщения:
    21
    Симпатии:
    0
    Да, так работает.
    Спасибо большое.