开放购物车 PHP。未添加到购物车的定制产品选项类型 - 没有警告/错误
Posted
技术标签:
【中文标题】开放购物车 PHP。未添加到购物车的定制产品选项类型 - 没有警告/错误【英文标题】:Opencart PHP. Bespoke product option type not being added to cart - no warnings/errors 【发布时间】:2013-12-12 14:36:02 【问题描述】:Opencart 1.5.6
我创建了一个自定义选项类型,它使用 jQuery UI 滑块与内置的 html 输入类型一起工作。它以与所有其他选项非常相似的方式由管理员控制 - 添加新选项并不容易!它的计划用途是选择数字选项,但适用于任何可以通过选择输入完成的操作。
在我将需要滑块选项的产品添加到购物车之前,一切正常。
似乎没有将滑块选项添加到数据库客户表中的购物车中。
该选项肯定是由product.tpl
中的AJAX发送到checkout/cart/add
添加到购物车不会失败 - 只是没有添加滑块选项。
没有警告说购物车中需要该选项 - 我可以毫无问题地完成结帐。 没有记录任何 php 错误。
问:我在哪里可以找到在数据库中更新客户购物车的代码? (我看过,但看不到) 编辑 我在 system/library/customer.php 中找到了这个 - 但是购物车数据已经在会话中,所以它没有帮助 em>
问:当客户点击“添加到购物车”时,我需要做些什么来确保新选项包含在购物车中?
谢谢
编辑
滑块在滑动时将其值传递给 HTML 文本输入 - 在生产中,输入将被隐藏。正是这个输入值与表单输入一起传递。
HTML:
<input type="text" value="<?php echo $min;?>" name="option[<?php echo $option['product_option_id']; ?>]" size="4" />
【问题讨论】:
发布呈现滑块的 HTML 部分怎么样?我很好奇用于此的真实表单字段,它的名称和值,它属于<form>
元素...
已编辑。 <form>
元素中不包含任何选项输入
【参考方案1】:
搞笑的是,我把问题搞错了。
定制选项已添加到购物车。我没有注意到,因为数据是 base64_encoded - 快速解码告诉我我找错地方了。
问题出在system/library/cart.php
。我会在我写完后发布解决方案。
解决方案
system/library/cart.php
中的此条件中未包含自定义选项:
if ($option_query->row['type'] == 'select' || $option_query->row['type'] == 'radio' || $option_query->row['type'] == 'image')
//etc
刚刚添加了|| $option_query->row['type'] == 'slider'
,它现在可以正常工作了。
【讨论】:
以上是关于开放购物车 PHP。未添加到购物车的定制产品选项类型 - 没有警告/错误的主要内容,如果未能解决你的问题,请参考以下文章
产品,添加到购物车,cookie 值未显示在 ListView 中
php 更改产品存档和单个产品中的“添加到购物车”/“添加到购物车”文本