Я добавил настраиваемое поле ввода текста в раздел методов оплаты в процессе оформления покупки OpenCart 3.0.3.1. Я знаю, что чего-то не хватает, потому что процесс оформления заказа завершится, но он передает значение по умолчанию для пользовательского поля вместо пользовательского значения ввода.
Значение по умолчанию устанавливается в функции Сохранить для способов оплаты. Не устанавливая его здесь, я получаю ошибку JSON, которую я не знаю, как еще обойти.
Я заблудился относительно того, что мне не хватает. Пожалуйста, может кто-нибудь сказать мне, почему значение ввода игнорируется ?? Что я могу изменить, чтобы пользовательское значение ввода передавалось вместе с остальными данными заказа?
Код My 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'
к сценарию Ajax в checkout.twig для включения текстового поля:
'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'),'
Добавлены коды номеров в каталог / controller / checkout / payment_method.php:
В индексной функции:
'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 - неверный индекс по номеру):
' 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';
}
}'
Добавлен номер в каталог / контроллер / оформить заказ / verify.php:
'$order_data['ponumber'] = $this->session->data['ponumber'];'
Добавлен номер в запросе вставки в каталоге / model / order.php:
'ponumber = '" . $this->db->escape($data['ponumber']) . "','
Что я пропустил? Почему значение по умолчанию 911 ponumber заканчивается в базе данных вместо пользовательского значения ввода? Пожалуйста, помогите.
Да, я занимался поиском, поиском и поиском, а предыдущие сообщения либо не помогли, либо остались без ответа. Любая и вся помощь приветствуется! Спасибо!