Пользовательское поле ввода на странице оформления заказа в Opencart: 3 - PullRequest
1 голос
/ 27 марта 2020

Я хочу, чтобы в поле Способ оплаты было указано поле Пользовательский ввод, чтобы получить информацию о налоге на товары и услуги перед размещением заказа. И я использую тему журнала 3. который имеет одностраничный заказ.

Итак, я пробовал эту статью: - https://forum.opencart.com/viewtopic.php?t=172521

В каталоге / view / theme / journal3 / template / journal3 /checkout/payment_method.twig --- добавил эту строку

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

В каталоге / 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

В каталоге / controller / checkout / подтвердите . php

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

В каталоге / модели / оформить заказ / заказ. 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: неожиданный символ в строке 1 столбца 1 данных JSON OK

Я заметил разницу в том, что эта тема получает другие данные поля (например: Комментарий box) by v-model = "order_data.comment" , как показано ниже, вместо атрибута name, как я использовал.

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

Итак, я также попробовал это v- model = "get_gst" в моем входе, но затем я получаю пустую страницу оформления заказа.

Кто-нибудь знает, где находится Получение ОШИБКИ? Заранее спасибо.

Оформить заказ js Файл

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

Кажется, вы не правильно добавили в сеанс свое поле.

В каталоге / контроллере / кассе / 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

Журнал 3 они отлично смотрятся с первого взгляда ... Но я не рекомендую использовать тему Journal 3. Эта тема очень сложна и рушит O C рамки.

0 голосов
/ 29 марта 2020

Простое решение - вы берете любое поле с платежного адреса, который в данный момент не используется (например, Адрес 2), меняете его название на «Налоговая информация GST» в каталоге языковых файлов opencart / language / en-gb / checkout / checkout. php.

Список адресов из списка «Учетная запись и адрес» в платежных реквизитах, оба извлекают свои данные из каталога / контроллера / счета / адреса. php в защищенной функции getList (). Итак, нам нужно только изменить файл checkout / payment_address.tpl. Просто добавьте

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

ПОСЛЕ

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

Нам нужно добавить это, потому что OpenCart отображает только поле адреса 1 в разделе Способ оплаты и Платежные данные на странице оформления заказа. Таким образом, мы можем показать поле адреса 2 на нем.

...