使用 CI 2.1.1 和本机 Cart 库
如果我多次插入一个项目(具有相同的产品 ID、相同的选项),它会替换而不是增加数量。
这可能是一个错误,我是否遗漏了什么,或者我自己添加此功能的最佳方法是什么?
使用 CI 2.1.1 和本机 Cart 库
如果我多次插入一个项目(具有相同的产品 ID、相同的选项),它会替换而不是增加数量。
这可能是一个错误,我是否遗漏了什么,或者我自己添加此功能的最佳方法是什么?
所以这是我的解决方案,在第 1 行更改 System/libraries/Cart.php。233 至 244
可能有更好的方法可以做到这一点,但它确实有效。我不明白为什么这个功能还没有
// EDIT: added check if idential rowid/item already in cart, then just increase qty
// without this addition, it would not increase qty but simply replace the item
if (array_key_exists($rowid, $this->_cart_contents))
{
$this->_cart_contents[$rowid]['qty'] += $items['qty'];
}
else
{
// let's unset this first, just to make sure our index contains only the data from this submission
unset($this->_cart_contents[$rowid]);
// Create a new index with our new row ID
$this->_cart_contents[$rowid]['rowid'] = $rowid;
// And add the new items to the cart array
foreach ($items as $key => $val)
{
$this->_cart_contents[$rowid][$key] = $val;
}
}
这不是一个错误。这样看:你告诉 CI 你想要 1 个 productX 在你的购物车中。如果它已经在那里,它就会保持这种状态。rowid
确实得到更新。
编辑核心库不是一个好主意。这使您的应用程序依赖于您所做的更改,并且当您更新 CI 并忘记再次更改核心时,它可能会破坏它。
如果您真的希望能够增加qty
用户每次点击 Add 的次数,那么我建议您做一些与您所做的类似的事情,但在 you 中model
。检查产品是否已经在购物车中,获取qty
并将现有产品添加qty
到新产品中。这有意义吗?