基本上当客户“喜欢”我们的Facebook页面时,我会将一个项目添加到购物车,但为了确保他们不会充分利用此优惠,我想从购物车中删除该项目,如果他们不同于页面。
所以使用Ajax调用我想从篮子中删除一个项目。现在我注意到从篮子中取出物品需要产品密钥。
它提出了一个get请求:
index.php?route=module/cart&remove=1286:YToxOntpOjYyMzk0O3M6NjoiMTI1MDQxIjt9:
看着这个请求,我发现在控制器中它从这个语句中调用了一个函数:
if (isset($this->request->get['remove'])) {
$this->cart->remove($this->request->get['remove']);
unset($this->session->data['vouchers'][$this->request->get['remove']]);
}
然后从这里调用system / library / cart.php中的remove函数
public function remove($key) {
if (isset($this->session->data['cart'][$key])) {
unset($this->session->data['cart'][$key]);
}
$this->data = array();
}
现在..我知道我可以很容易地做一个类似的get命令..但是那个键似乎是产品ID后跟别的东西..我不知道这是什么或如何我可以访问它所以我可以删除一个篮子里的物品。
如果有人能说清楚这一点,我真的很感激。
答案 0 :(得分:1)
只需再次查看方法system/library/cart.php
中的add()
- 您可以在此处看到此代码:
if (!$option) {
$key = (int)$product_id;
} else {
$key = (int)$product_id . ':' . base64_encode(serialize($option));
}
我希望现在对你很清楚;-)(如果没有,请问)。
答案 1 :(得分:0)
感谢@shadyyx对序列化信息的建议。
现在,因为我想从购物车中删除的商品始终是同一商品,而且我知道产品ID是什么,我只需检查购物车数组中会话中存储的内容。每个项目都在此数组中,其产品ID和编码选项。
现在循环购物车搜索产品ID,然后使用我原始帖子中提到的Ajax代码将其从购物车中删除。