首页 > 解决方案 > Opencart 结帐页面上的自定义输入字段:3

问题描述

我想在Payment Method下有一个自定义输入字段,以便在下订单之前获取 GST 税详细信息。我正在使用 Journal 3 主题。它有一个单页结帐。

所以,我试过这篇文章:- https://forum.opencart.com/viewtopic.php?t=172521

在 catalog/view/theme/journal3/template/journal3/checkout/payment_method.twig ---添加了这一行

<input name="get_gst" type="text" placeholder="{{ custom_gst }}" class="form-control">

在目录/控制器/结帐/payment_method.php

$this->session->data['comment'] = strip_tags($this->request->post['comment']);      //Under this line
$this->session->data['your_field'] = strip_tags($this->request->post['get_gst']);   //I added this line

在目录/控制器/checkout/confirm.php

$order_data['comment'] = $this->session->data['comment'];    //Under this line
$order_data['get_gst'] = $this->session->data['get_gst'];    //I added this line

在目录/模型/结帐/order.php

, comment = '" . $this->db->escape($data['comment']) . "'    //after this line
, get_gst = '" . $this->db->escape($data['get_gst']) . "'    //I added this line

毕竟得到这个错误......

SyntaxError:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符 OK

我注意到一个区别,这个主题是通过v-model="order_data.comment"获取其他字段数据(如:评论框),如下所示,而不是我使用的 name 属性。

<textarea class="form-control" v-model="order_data.comment" placeholder="{{ text_comments }}"></textarea>

所以,我也在我的输入中尝试了这个v-model="get_gst",但是我得到一个空的结帐页面。

任何人都知道在哪里出现错误?先感谢您。

签出 js 文件

标签: opencartopencart2.xopencart-3journal

解决方案


似乎您没有正确地将您的字段添加到会话中。

在目录/控制器/结帐/payment_method.php

此行不正确:

$this->session->data['your_field'] = strip_tags($this->request->post['get_gst']);   //I added this line

应该:

$this->session->data['get_gst'] = strip_tags($this->request->post['get_gst']);   //I added this line

Journal 3 他们第一眼看起来很棒......但我不建议使用 Journal 3 主题。这个主题非常复杂并且破坏了 OC 框架。


推荐阅读