我正在使用Prestashop 1.5并创建了包含分组产品列表的页面。我想在购物车中显示每种产品的数量。在购物车页面存在$ product.cart_quantity属性,但在我的页面上却没有。请解释一下如何在我的页面上的购物车中显示产品数量。
答案 0 :(得分:0)
我能想到的最简单的方法是通过cookie访问数据,因为购物车数据存储在其中。
您可以获得这样的Cookie数据:
$context = Context::getContext();
echo '<pre>',print_r($context->cookie, true).'</pre>';
Prestashop Context是以前作为全局变量访问的PHP变量的注册表。它旨在标准化访问这些变量的方式,并通过摆脱全局变量使代码更加健壮。
我们的回声只是为了展示你可以从cookies中获得什么信息。
当顾客在购物车中添加一些东西时,它会自动给它一个购物车ID(id_cart),从那里可以很容易地访问该值以获取所有信息。
要获取购物车ID(假设您已有上下文),请使用此
$Cart = $context->cart;
这会返回当前购物车的ID。
现在您想要返回购物车中的当前产品(包含其中包含的所有信息)。为此你必须使用prestashop_main_folder / classes / cart.php中的公共函数
因此,要返回所有当前产品,请使用以下行
$Cart->getProducts($refresh = false, $id_product = false, $id_country = null)
然后它会返回一个包含所有变量的数组,然后您可以轻松访问它们。
BR的
答案 1 :(得分:0)
您可以执行以下操作:
$context=Context::getContext();
$id_cart=$context->cookie->id_cart;
if($id_cart=='') $id_cart=Tools::getValue('id_cart');
$theCart = new Cart($id_cart);
$products = $theCart->getProducts(true);
$nbTotalProducts = 0;
foreach ($products as $product)
{
$nbTotalProducts += (int)$product['cart_quantity'];
}