在OpenCart 3结帐的第5步中添加了自定义字段-未收到输入

时间:2019-03-18 20:20:41

标签: php ajax twig customization opencart-3

我在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'),'

在目录/控制器/结帐/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添加到目录/控制器/结帐/confirm.php:

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

在商品目录/模型/order.php中的插入查询中添加了ponumber:

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

我想念什么?为什么Ponumber的默认911值最终出现在数据库中而不是用户输入值?请帮忙。

是的,我确实进行了搜索,然后进行搜索,并且以前的帖子没有帮助或仍然没有答案。任何和所有帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:0)

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

如果还有其他人陷入其中,并且需要在他们的OpenCart 3.0结帐流程中需要自定义字段(例如采购订单#),请检查以下内容:

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

这个开发者太棒了!他们为我创建了此代码,然后对其进行了修改,使其出现在步骤5中,并具有更标准的“必需”感觉。如果您需要类似的东西,他们也会很快做出回应并且非常合理。问题解决了。