我正在使用PrestaShop版本1.5.4.1
目前,我的购物车为每种产品都有单独的删除按钮。
如何在一个操作中删除所有产品?我只需要点击一下即可清空推车。
我在ordercontroller
中使用了此代码并从themes / defaulte / shoopin-cart.tpl中调用了该函数
public function emptybag()
{
$products = $this->getProducts();
foreach ($products as $product) {
$this->deleteProduct($product->id);
}
}
答案 0 :(得分:3)
很多事情:
有正确的功能:
public function emptybag()
{
$products = $this->context->cart->getProducts();
foreach ($products as $product) {
$this->context->cart->deleteProduct($product["id_product"]);
}
}
为了简化操作,请将您的功能添加到前控制器的覆盖文件中,就像您可以从前面的任何位置调用它一样。然后覆盖init函数并将这些行添加到函数的结尾(之前不是因为我们需要初始化cart属性):
if (isset($_GET['emptybag'])){
$this->emptybag();
}
然后,在您想要的位置添加指向您的模板的链接:
<a href="{$link->getPageLink('order', true, NULL, 'emptybag=1')}" class="button_large" title="{l s='Clear cart'}">{l s='Clear cart'}</a>
就是这样!
答案 1 :(得分:1)
要在导航中添加一个干净的网址,您可以在条件“emptybag”之后添加此行
Tools::redirect($this->context->link->getPageLink('order', true, NULL));
按订单重定向页面。
答案 2 :(得分:0)
$this->context->cart->delete();
简单!