【问题标题】:Opencart PHP. Bespoke product option type not being added to cart - no warnings/errors开放购物车 PHP。未添加到购物车的定制产品选项类型 - 没有警告/错误
【发布时间】: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; 元素中不包含任何选项输入

标签: opencart product options


【解决方案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',它现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多