Пример вывода упрощённого блока корзины, состоящего из количества товаров, общей суммы и ссылки на /cart
:
1. Добавить в template.php
:
/**
* Preprocess variables for commerce-cart-block.tpl.php
*/
function THEMENAME_preprocess_commerce_cart_block(&$vars) {
$order_wrapper = entity_metadata_wrapper('commerce_order', $vars['order']);
$quantity = commerce_line_items_quantity($order_wrapper->commerce_line_items, commerce_product_line_item_types());
$quantity_text = format_plural($quantity, '@count item', '@count items', array(), array('context' => 'product count on a Commerce order'));
$total = $order_wrapper->commerce_order_total->value();
$total_text = commerce_currency_format($total['amount'], $total['currency_code']);
$vars['contents_view'] = t('@quantity for @amount', array('@quantity' => $quantity_text, '@amount' => $total_text)) . '<br />';
$vars['contents_view'] .= l(t('Show cart'), 'cart');
}
2. Сбросить кэш.
Profit.
Будет корректно обновляться при добавлении товаров с помощью AJAX.
Написанное актуально для
Commerce 1.x
Комментарии
Спасибо, тоже на днях потребовалась упрощенная корзина, реализовал с помощью модуля http://www.drupalcommerce.org/extensions/sandbox/project/commerce-compa…, придется переделать
В сочетании с ajax кнопкой добавления товара в корзину в код внедряется div.
http://joxi.ru/9ANIUxjKTJC4A7qmPNw - при загрузке страницы код чистый.
А после код уже выглядит так: http://joxi.ru/aARIU_3JTJCYBWsnSzA
Откуда этот div может взяться? В шаблоне корзины оставила только вывод содержимого карты, грешила на свой шаблон. Но дело вроде как не в нем.
Заранее благодарю за помощь :)
это особенность какой-то ajax-команды, не помню какой
В любом случае, спасибо за полезности :)
разобрался с лишним div-ом — в
ajax_command_replace()
нужно отправлять html без пробелов в начале и конце:а как можно убрать десятичные цифры из такого вывода?
Почему-то, когда в корзине 21, 31, 41 товар и так далее, то всегда отображается 1 товар в корзине. Хотя при открытии корзины отображается верное значение.
Также нет подписей для русскоязычных сайтов
1 товар и для всех остальных "n товаров" это не верно.
Уважаемый xandeadx!
Во-первых, позвольте выразить безмерную благодарность за ваш труд!
Во-вторых, будьте добры, просветите, как адаптировать данный код под русский язык, ведь у нас, помимо item и items есть еще и третий вариант.
Как реализовать нормальный вывод информации, в соответствии с правилами русского языка?
1 товар
2 товара
5 товаров
Присоединяюсь к вопросу про русский язык!
Помогите пожалуйста!!!
Артем, Кирилл, напишите так:
Количество: 10
Стоимость (На сумму): 5000 руб. (USD)
А как слова - Shoping cart , сделать ссылкой на карту?
l(t('Show cart'), 'cart');
Добавить комментарий