Прежде всего, благодарю вас за то, что вы дали мне свое драгоценное время.
Моя ситуация –
Я использую Opencart 2.1.0.1
Способ оплаты
Пользовательский OnePageCheckout
- OpenCart2 vqmod заменить, до и после замены?
- Ошибка при добавлении кода через vqmod
- Как установить глобальные переменные в OpenCart 2.3.0.2?
- Как получить текущий идентификатор категории - OpenCart 2.0
- Как преобразовать десятичный $ attribute ; во фракцию в opencart
Пользовательская тема
Я реализовал пользовательский процесс, который проверяет клиента из нашей собственной базы данных через задание 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.
Я пробовал все свои усилия, и поэтому максимум, что я мог сделать, это просто перенаправить на нужную страницу, но без каких-либо параметров.
Я надеюсь, что это сработает для вас
Пожалуйста, замените в этом файле как каталог / контроллер / расширение / платеж / 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 }
Теперь у меня есть вся информация о ваших клиентах!
Поэтому я предлагаю вам не делать этого.