>基本上,当客户"喜欢"我们的Facebook页面时,我会将商品添加到购物车中,但为了确保他们不会充分利用此优惠,我想从购物车中删除该商品,如果他们与页面不同。
因此,使用 Ajax 调用,我想从购物篮中删除一个项目。现在我注意到从购物篮中删除项目需要产品密钥。
它发出这样的获取请求:
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']]);
}
然后从这里调用系统/库/购物车中的删除函数.php
public function remove($key) {
if (isset($this->session->data['cart'][$key])) {
unset($this->session->data['cart'][$key]);
}
$this->data = array();
}
现在。。我知道我可以轻松地执行类似的获取命令。但该键似乎是产品 ID 后跟其他内容。我不确定这是什么或我如何访问它,以便我可以从购物篮中删除物品。
如果有人能对此有所了解,我将不胜感激。
只需再次查看方法add()
system/library/cart.php
- 在那里您可以看到以下代码:
if (!$option) {
$key = (int)$product_id;
} else {
$key = (int)$product_id . ':' . base64_encode(serialize($option));
}
我希望现在你很清楚;-)(如果没有,请询问)。
感谢@shadyyx对序列化信息的建议。
现在,由于我要从购物车中删除的商品始终是同一商品,并且我知道产品 ID 是什么,所以我可以简单地检查购物车数组中会话中存储的内容。每个项目都包含其产品 ID 和编码选项,并在此数组中。
现在循环购物车搜索产品ID,然后使用我原始帖子中提到的Ajax代码将其从购物车中删除。