【问题标题】:Custom Input Field on Checkout Page in Opencart:3Opencart 结帐页面上的自定义输入字段:3
【发布时间】:2020-03-27 16:08:17
【问题描述】:

我想在付款方式下有一个自定义输入字段,以便在下订单之前获取 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 列出现意外字符 好的

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

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

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

有人知道在哪里出现错误吗?提前谢谢你。

Checkout js file

【问题讨论】:

  • 任何帮助将不胜感激!
  • 另外,我在简单的 opencart 中尝试过,但错误相同:SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

标签: opencart opencart2.x opencart-3 journal


【解决方案1】:

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

在目录/控制器/结帐/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 框架。

【讨论】:

    【解决方案2】:

    轻松解决方案 - 您从付款地址中获取当前未使用的任何字段(如地址 2),在 opencart 语言文件目录/语言/en-gb/checkout/checkout 中将其标题更改为“GST 税详细信息”。 php.

    结帐帐单明细下的帐户和地址列表中的地址列表,两者都从受保护的函数 getList() 中的目录/控制器/帐户/地址.php 中获取数据。所以,我们只需要修改 checkout/payment_address.tpl 文件。只需添加

    <?php echo $address['address_2']; ?>
    

    之后

    <?php echo $address['address_1']; ?> 
    

    我们需要添加此项,因为 OpenCart 仅在结帐页面的付款方式和账单详细信息部分显示地址 1 字段。因此,我们可以在其上显示地址 2 字段。

    【讨论】:

    • 好的,我也将这些更改应用于 Journal 3 和简单主题 2.3.0.2,我得到了与上面提到的相同的错误。但是这篇新文章仅在 opencart 2.3.0.2 上解决了我的问题 (forum.opencart.com/viewtopic.php?t=204399)。因为我找不到和更改 Journal 主题的 json 脚本代码。意思是,我们只需要在期刊主题上应用这篇新文章的变化。我在 END 附上了结帐 js 文件,也许我们需要更改的地方,看看问题...
    • 还是不行。可能是因为 - 付款方式只发送单选按钮数据,我们需要在脚本中包含输入字段,就像他们在这里所说的那样:forum.opencart.com/viewtopic.php?t=204399
    • 如果我们按照您的第一个计划将地址 2 字段更改为 GST。然后有一件事情需要改变::-- 正如我们所知,opencart 仅在结帐页面的付款方式和账单详细信息部分显示地址 1 字段。那么,我该如何修改它,使其也显示地址 2 字段(我对 GST 进行了更改)。
    • 如果我们谈论的是日记 3 结帐页面 - 比转到管理 - 日记 - 皮肤 - 默认(或您当前使用的任何) - 结帐。在页面底部找到字段 - 地址 - 和 Ardess 2 可见性设置。
    • 如果我们使用简单的 opencart 2.3.0.2。 ?有什么建议...?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2013-03-09
    • 2017-02-23
    相关资源
    最近更新 更多