Получить идентификатор заказа Opencart в платежном модуле COD для переадресации

Прежде всего, благодарю вас за то, что вы дали мне свое драгоценное время.

Моя ситуация –

Я использую Opencart 2.1.0.1

Способ оплаты

Пользовательский OnePageCheckout

Пользовательская тема

Я реализовал пользовательский процесс, который проверяет клиента из нашей собственной базы данных через задание cron, выполняемое каждую минуту.

Это код по умолчанию в каталоге Opencart / view / theme / template / payment / cod.tpl

<div class="buttons"> <div class="pull-right"> <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="btn btn-primary" data-loading-text="<?php echo $text_loading; ?>" /> </div> </div> <script type="text/javascript"><!-- $('#button-confirm').on('click', function() { $.ajax({ type: 'get', url: 'index.php?route=payment/cod/confirm', cache: false, beforeSend: function() { $('#button-confirm').button('loading'); }, complete: function() { $('#button-confirm').button('reset'); }, success: function() { location = '<?php echo $continue; ?>'; } }); }); //--></script> 

Поскольку я хочу перенаправить клиента на следующую страницу после успешной проверки. https://www.myopencartstore.com/ confirm.php? order_id = $ order_id

Обязательное действие: я хочу передать переменную order_id в параметре url, как выделено жирным шрифтом выше.

Модифицированный код –

 <div class="buttons"> <div class="pull-right"> <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="btn btn-primary" data-loading-text="<?php echo $text_loading; ?>" /> </div> </div> <script type="text/javascript"><!-- $('#button-confirm').on('click', function() { $.ajax({ type: 'get', url: 'index.php?route=payment/cod/confirm', cache: false, beforeSend: function() { $('#button-confirm').button('loading'); }, complete: function() { $('#button-confirm').button('reset'); }, success: function() { location = '<?php echo 'confirm-success.php'; ?>'; } }); }); //--></script> 

Пожалуйста, помогите, как сделать то же самое.

Я хочу пропустить страницу проверки / успеха .

Я попытался выполнить $ this-> session-> data ['order_id']; для получения параметра Order ID.

Я пробовал все свои усилия, и поэтому максимум, что я мог сделать, это просто перенаправить на нужную страницу, но без каких-либо параметров.

Related of "Получить идентификатор заказа Opencart в платежном модуле COD для переадресации"

Я надеюсь, что это сработает для вас

Пожалуйста, замените в этом файле как каталог / контроллер / расширение / платеж / cod.php

$ data ['continue'] = $ this-> url-> link ('checkout / success');

в

$ data ['continue'] = HTTP_SERVER.'confirm.php? order_id = '. $ this-> session-> data [' order_id '];

Если ваш URL-адрес страницы confirm.php, выполните следующие действия.

Открыть каталог \ view \ theme \ default \ template \ payment \ cod.tpl

изменение

 location = '<?php echo $continue; ?>'; 

в

 location = '<?php echo HTTP_SERVER; ?>confirm.php'; 

Или вы можете изменить каталог страницы / controller / payment / cod.php

 $data['continue'] = $this->url->link('checkout/success'); 

в

 $data['continue'] = HTTP_SERVER.'confirm.php?order_id='.$this->session->data['order_id']; 

благодаря

отредактированный

Таким образом, вы можете написать таким образом. В каталоге \ controller \ checkout \ success.php

после

 if (isset($this->session->data['order_id'])) { 

Написать

 $data['order_id'] = $this->session->data['order_id']; 

Для перенаправления с общей страницы / страницы успеха на страницу confirm.php через 5 секунд вам нужно написать следующие вещи перед

 <script><!-- $(document).ready(function () { window.setTimeout(function(){ window.location.href ='<?php echo HTTP_SERVER; ?>confirm.php?order_id=<?php echo $order_id; ?>'; }, 5000); }); --></script> 

И что, если я напишу сценарий следующим образом:

 for ($order_id = 0; $order_id < 1000000; $order_id++) { // Pseudo-code to save the data at this URL: https://www.myopencartstore.com/confirm.php?order_id=$order_id } 

Теперь у меня есть вся информация о ваших клиентах!

Поэтому я предлагаю вам не делать этого.