Цена по запросу в корзине в шапке

Тема в разделе "OpenCart", создана пользователем Zhuzawar, 19 май 2022.

  1. Zhuzawar

    Zhuzawar

    Регистрация:
    19 май 2022
    Сообщения:
    2
    Симпатии:
    2
    Добрый день!
    Opencart 3.0.2.0
    Настроил вывод текста "Цена по запросу" при нулевой стоимости по теме c этого форума.
    https://wmasteru.org/threads/При-нулевой-стоимости-текст-цена-по-запросу-в-opencart-3.29934/
    Все работает, но теперь в корзине в шапке вместо 0р. выводится "Цена по запросу".
    https://dverilike.ru/
    Так выводится сумма товаров в корзине в шапке.
    <p class="us-cart-text">
    {{ total_amount }}
    </p>
    Подскажите как исправить данную ошибку.
    В корзине в шапке выводить 0р. или "Корзина пуста" пока не добавлено ни одного товара, как только добавиться товар то выводить сумму.
     
  2. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    Доброго времени!
    По вашей ситуации, то я бы предложил сделать небольшое "доисправление" в контроллере корзины в этой строке:
    PHP:
    $data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total$this->session->data['currency']));
    заменив данную строку на такую:
    PHP:
    if ($this->cart->getSubTotal() > 0) {
        
    $data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total$this->session->data['currency']));
    } else {
        
    $data['text_items'] = $this->language->get('text_no_items');
    }
    ну и переменную в язык нужно добавить:
    PHP:
    $_['text_no_items'] = '0 р.';
     
  3. Zhuzawar

    Zhuzawar

    Регистрация:
    19 май 2022
    Сообщения:
    2
    Симпатии:
    2
    Большое спасибо.
    Все получилось. Только в моем случае, видимо из за шаблона Ultrastore, пришлось заменить в этом файле другую строку
    PHP:
    $data['total_amount'] = $this->currency->format($total$this->session->data['currency']);
    По аналогии с представленным вами кодом
    PHP:
    if ($this->cart->getSubTotal() > 0) {
                
    $data['total_amount'] = $this->currency->format($total$this->session->data['currency']);
    } else {
                
    $data['total_amount'] = $this->language->get('text_no_items');
    }
    Так все заработало.
     
    Baco нравится это.