【问题标题】:Codeignighter Shopping cart issueCodeigniter 购物车问题
【发布时间】:2013-01-06 15:25:53
【问题描述】:

我正在codeignighter 框架之上编写一个小型购物cart 工具。 使用内置的购物车类,我想更新已添加到购物车的产品价格。

这类似于结帐点的优惠券。我提供比特定产品当前价格低 5 美元的优惠。

对我来说,下面的代码看起来不错,但它并没有更新价格。

有人知道为什么吗?

 foreach ($this->cart->contents() as $item) {
      if($item['id'] == 1) {
          $item['price'] = $item['price'] - 5;
          $this->cart->update($item);
      }

 }

【问题讨论】:

  • 那么,产品 id 是 1 吗? var_dump $item 查看你是否检查了正确的 ID
  • 是的,我总是使用 var_dump()。传递的数据是好的
  • 你使用 items['price'] 而不是 $item,除非那是一个错字。

标签: php codeigniter cart


【解决方案1】:

要使 cart->update 函数起作用,您需要将 rowid 传递给它。试试:

foreach ($this->cart->contents() as $items) {
      if($items['id'] == 1) {
          $rowid = $items['rowid'];

          $data = array(
             'rowid' => $rowid,
             'price' => $items['price']-5
          );
          $this->cart->update($data);
      }

 }

【讨论】:

  • 这很奇怪,我可以更改数量但不能更改价格。这(计算)是否由 Cart 类内部处理。
  • 好像购物车本身有限制,只能更新产品数量。您需要扩展库才能更新商品的价格。看这里:bitbucket.org/nelson.wells/extended-codeigniter-cart/src/…
  • 谢谢你,我挖掘并找到了购物车类的来源,也找到了这一行:((这个函数允许更改给定项目的数量。))
  • 感谢 Mallix。正是我需要的。
猜你喜欢
  • 1970-01-01
  • 2011-08-01
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多