使用CI 2.1.1和本地車庫笨車:將項目添加到購物車不止一次取代
如果我插入一個項目(具有相同的產品ID,相同的選項)不止一次,它取代代替增加數量。
這可能是一個錯誤,我錯過了什麼,或者什麼是最好的方式來自己添加這個功能?
使用CI 2.1.1和本地車庫笨車:將項目添加到購物車不止一次取代
如果我插入一個項目(具有相同的產品ID,相同的選項)不止一次,它取代代替增加數量。
這可能是一個錯誤,我錯過了什麼,或者什麼是最好的方式來自己添加這個功能?
所以這是我的解決方案,對系統/庫/ 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
確實得到更新。
編輯核心庫是不是一個好主意。這使得您的應用程序依賴於您所做的更改,並且在您更新配置項時忘記更改內核時它可能會破壞它。
如果你真的希望能夠增加qty
每次用戶點擊Add,然後 我建議是做類似於你做了什麼事,但你model
。 檢查產品是否已在購物車中,獲取qty
並將現有的qty
添加到新產品中。 這有道理嗎?