Opencart:3 结帐页面上的自定义输入字段
Custom Input Field on Checkout Page in Opencart:3
我想在付款方式下有一个自定义输入字段,以便在下订单前获取 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">
在 catalog/controller/checkout/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
在 catalog/controller/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
在 catalog/model/checkout/order.php
, comment = '" . $this->db->escape($data['comment']) . "' //after this line
, get_gst = '" . $this->db->escape($data['get_gst']) . "' //I added this line
毕竟 得到这个错误...
语法错误:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符
好的
我注意到这个主题正在通过 v-model="order_data.comment" 获取其他字段数据(如:评论框),如下所示,而不是名称属性就像我使用的那样。
<textarea class="form-control" v-model="order_data.comment" placeholder="{{ text_comments }}"></textarea>
所以,我也在我的输入中尝试了这个 v-model="get_gst",但是我得到一个空的结帐页面。
有人知道哪里出现错误吗?提前致谢。
简单的解决方案 - 您可以从当前未使用的付款地址(如地址 2)中获取任何字段,在 opencart 语言文件 catalog/language/en-gb/checkout/checkout.[=24= 中将其标题更改为 "GST Tax detail" ].
结帐账单详细信息下帐户和地址列表中的地址列表,两者都在受保护的函数 getList() 中从 catalog/controller/accout/address.php 中获取数据。所以,我们只需要修改checkout/payment_address.tpl文件即可。只需添加
<?php echo $address['address_2']; ?>
在
之后
<?php echo $address['address_1']; ?>
我们需要添加此项,因为 OpenCart 仅在结帐页面的付款方式和账单详细信息部分显示地址 1 字段。所以,通过这个我们可以在上面显示 Address 2 字段。
您似乎没有正确地将您的字段添加到会话中。
在 catalog/controller/checkout/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 框架。
我想在付款方式下有一个自定义输入字段,以便在下订单前获取 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">
在 catalog/controller/checkout/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
在 catalog/controller/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
在 catalog/model/checkout/order.php
, comment = '" . $this->db->escape($data['comment']) . "' //after this line
, get_gst = '" . $this->db->escape($data['get_gst']) . "' //I added this line
毕竟 得到这个错误...
语法错误:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符 好的
我注意到这个主题正在通过 v-model="order_data.comment" 获取其他字段数据(如:评论框),如下所示,而不是名称属性就像我使用的那样。
<textarea class="form-control" v-model="order_data.comment" placeholder="{{ text_comments }}"></textarea>
所以,我也在我的输入中尝试了这个 v-model="get_gst",但是我得到一个空的结帐页面。
有人知道哪里出现错误吗?提前致谢。
简单的解决方案 - 您可以从当前未使用的付款地址(如地址 2)中获取任何字段,在 opencart 语言文件 catalog/language/en-gb/checkout/checkout.[=24= 中将其标题更改为 "GST Tax detail" ].
结帐账单详细信息下帐户和地址列表中的地址列表,两者都在受保护的函数 getList() 中从 catalog/controller/accout/address.php 中获取数据。所以,我们只需要修改checkout/payment_address.tpl文件即可。只需添加
<?php echo $address['address_2']; ?>
在
之后<?php echo $address['address_1']; ?>
我们需要添加此项,因为 OpenCart 仅在结帐页面的付款方式和账单详细信息部分显示地址 1 字段。所以,通过这个我们可以在上面显示 Address 2 字段。
您似乎没有正确地将您的字段添加到会话中。
在 catalog/controller/checkout/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 框架。