开放购物车 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 部分怎么样?我很好奇用于此的真实表单字段,它的名称和值,它属于&lt;form&gt; 元素... 已编辑。 &lt;form&gt; 元素中不包含任何选项输入 【参考方案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-&gt;row['type'] == 'slider',它现在可以正常工作了。

【讨论】:

以上是关于开放购物车 PHP。未添加到购物车的定制产品选项类型 - 没有警告/错误的主要内容,如果未能解决你的问题,请参考以下文章

如何观察产品的“添加到购物车”多个选项

产品,添加到购物车,cookie 值未显示在 ListView 中

php 更改产品存档和单个产品中的“添加到购物车”/“添加到购物车”文本

Woocommerce 自定义添加到购物车循环

Magento 2.3.5:使用自定义选项和价格将产品添加到购物车

Woocommerce 添加到自定义产品的购物车按钮