首页 > 解决方案 > 在 OpenCart 3 结帐的第 5 步中添加了自定义字段 - 未接收输入

问题描述

我在 OpenCart 3.0.3.1 结账流程的付款方式部分添加了一个自定义文本输入字段。我知道我遗漏了一些东西,因为订单结帐过程将完成,但它传递的是自定义字段的默认值,而不是用户输入值。

默认值在付款方式的保存功能中设置。如果不在这里设置,我会收到一个我不知道如何解决的 json 错误。

我迷失了我所缺少的东西。拜托,有人能告诉我为什么输入值被忽略了吗?我可以更改什么以使用户输入值与其余订单数据一起传递?

我的 Twig 文本字段代码,payment_method.php:

`<div class="form-group required">
 <label class="col-sm-2 control-label" for="input-ponumber">{{ entry_ponumber }}</label>
 <div class="col-sm-10">
 <input type="text" name="ponumber" id="ponumber" class="form-control" />
 </div> `

添加:

'#collapse-payment-method input[type=\'text\']:checked' 

到 checkout.twig 中的 Ajax 脚本以包含文本字段:

'data: $('#collapse-payment-method input[type=\'text\']:checked, #collapse-payment-method input[type=\'radio\']:checked, #collapse-payment-method input[type=\'checkbox\']:checked, #collapse-payment-method textarea'),'

在 catalog/controller/checkout/payment_method.php 中添加了 ponumber 代码:

在索引函数中:

'if (empty($this->request->post['ponumber'])) {
$data['error_warning'] = sprintf($this->language->get('error_ponumber'), $this->url->link('checkout/checkout'));
} else {
$data['error_warning'] = '';
}

if (isset($this->session->data['ponumber'])) {
$data['ponumber'] = $this->session->data['ponumber'];
} else {
$data['ponumber'] = '';
}'

在保存函数中(否则我会收到 Json 错误 - ponumber 上的索引无效):

'       if (!$json) {
        $this->session->data['payment_method'] = $this->session->data['payment_methods'][$this->request->post['payment_method']];

        $this->session->data['comment'] = strip_tags($this->request->post['comment']);

        if (!empty($this->request->post['ponumber'])) {
            $this->session->data['ponumber'] = $this->request->post['ponumber'];
        } else {
            $this->session->data['ponumber'] = '911';
        }

    }'

将 ponumber 添加到目录/控制器/checkout/confirm.php:

'$order_data['ponumber'] = $this->session->data['ponumber'];'

在 catalog/model/order.php 中的插入查询中添加了 ponumber:

'ponumber = '" . $this->db->escape($data['ponumber']) . "',' 

我错过了什么?为什么 ponumber 的默认 911 值最终会出现在数据库中,而不是用户输入的值?请帮忙。

是的,我进行了搜索,搜索,搜索,以前的帖子要么没有帮助,要么没有得到答复。任何和所有的帮助表示赞赏!谢谢!

标签: phpajaxtwigcustomizationopencart-3

解决方案


好吧,将其张贴在多个地方,似乎没有人能够真正提供帮助。

如果其他人对此感到困惑并且需要在他们的 OpenCart 3.0 结帐流程中使用自定义字段,例如采购订单#,请查看以下内容:

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=36216

这个开发商厉害了!他们为我创建了这个,然后对其进行了修改以显示在第 5 步中并具有更标准的“必需”感觉。如果您需要类似的东西,他们也会迅速做出反应并且非常合理。问题解决了。


推荐阅读