Я пытаюсь получить общую сумму заказа в minicart.phtml, но мне не везет. Я делаю инъекцию Magento \ Checkout \ Model \ Cart.
Вот мой код:
$this->cart = $cart;
$cartQuote= $this->cart->getQuote()->getData();
echo $cartQuote['base_grand_total'];
После запуска этого кода миникарта ломается и полностью исчезает с внешнего интерфейса.
Спасибо!
Ответы:
Эта строка ниже работает для всех случаев, если кеш позволяет работать нормально,
Для получения стоимости Grandtotal, стоимость доставки,
Вы можете получить GrandTotal, промежуточный итог и стоимость доставки для текущей цитаты, используя приведенный ниже код в файле minicart.phtml, но если кеш включен в это время, не обновляйте цену, когда вы добавляете новый продукт, используя метод ниже.
источник
У нас был похожий вопрос от клиента. где он хотел показать «[количество] пункт [промежуточный итог]» в стилизованном блоке корзины вместо значка корзины по умолчанию в мини-карте.
Мы нашли этот вопрос здесь, но нам не понравился ответ, где нам нужно было расширить
\Magento\Checkout\CustomerData\Cart
класс, просто чтобы правильно отобразить HTMLэто код, как мы исправили это в шаблоне:
Похоже, что вы также можете использовать стандартную привязку данных knockout.js, и вам не нужно использовать сумасшедший метод комментариев magento 2 knockout. это решило проблему, когда рендеринг
getCartParam('subtotal')
с методом html, где он обычно печатает промежуточный итог неправильно из-за<span ="price"></span>
тегаисточник
Приведенный выше код будет работать при загрузке страницы, но не будет работать с magento2 ajax add в корзину, поскольку теперь он использует Knockout JS.
Для этого вы должны использовать -
Здесь я добавил новый параметр корзины " subtotal_value ", так как " subtotal " вернет диапазон ценового контейнера и будет отображаться как TEXT с использованием KO. Здесь вы должны использовать « Экземпляр диспетчера объектов » напрямую, поскольку вы не сможете внедрить зависимости в « __construct ».
ПРИМЕЧАНИЕ, есть несколько исключений, когда нам может понадобиться использовать « Экземпляр диспетчера объектов » напрямую. В нашем случае это обратная совместимость конструктора.
Исключение ObjectManager
Затем скопируйте тему magento по умолчанию " /cart/minicart.phtml " в свою тему и добавьте KO-коды.
текст: getCartParam ('subtotal_value')
источник
Определите блок в макете, в котором класс помечен как «Magento \ Checkout \ Block \ Cart \ Totals»
Тогда в .phtml вы можете иметь ниже код
Ожидаемый результат
источник