php - Codeigniter - 如果选项不同,则添加具有相同 ID 的产品

标签 php codeigniter cart

我目前正在构建一个简单的电子商务网站,但遇到了一个有趣的问题。

基本上,产品在产品表中,但还有许多其他选项,例如价格、颜色等...其中一些会影响总价。

但是,如果存在相同的产品但具有不同的选项集,那么产品 ID 显然是相同的,并且该项目不会添加到 codeigniter 购物车中。

我想到的最简单的方法就是让相同id的商品加入购物车,这样容易吗?有没有更好的方法来解决这个问题?

任何想法都会很有帮助!

最佳答案

好的,所以我找到了我的问题的答案,人们可​​能会觉得有帮助。

基本上我使用多维数组作为 Codeigniter 购物车类不支持的选项。

这会生成相同的行 ID,因为数组显示为数组,但也可能破坏了用于在 Codeigniter Cart 类中生成哈希的内爆函数。

要解决这个问题,您可以简单地替换 CI_Cart 类中的这一行:

$rowid = md5($items['id'].implode('', $items['options']));

用这一行:

$rowid = md5($items['id'].serialize($items['options']));

解决问题。

然后,这将创建多维数组的可存储表示形式作为文本,然后对其进行哈希处理,并且如果存在用作选项值的多维数组,则该文本将始终是唯一的。

关于php - Codeigniter - 如果选项不同,则添加具有相同 ID 的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473740/

相关文章:

android - 获取android中动态 ListView 的行ID以添加到购物车

php - Heroku 上的基本 Node.js 应用程序 - 免费发送电子邮件的方式?

javascript - URL 以谷歌在 Chrome 中的方式编码字符串

php - 通过php将希伯来语插入mySql数据库

php - 在 CodeIgniter 中处理数据库错误的最佳实践

php - 有条件地使 WooCommerce 产品不可购买

php - 在 PHP MySQL 中处理多对多关系的最佳方法

php - 从模型函数中排序数组列表

php - Codeigniter 更新方法

php - 在 Woocommerce 中一次只允许购物车中的一个产品类别