Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Где находится обработка кнопки "Подтвердить заказ"


Recommended Posts

Коллеги, подскажите пожалуйста, где хранится обработка кнопки "Подтвердить заказ" (самый последний шаг) в форме оформления заказа.

 

Мне нужно сделать так, что бы если в выборе способа оплаты, клиент указал "Оплатить на сайте" (добавленный вручную пункт), то после нажатия кнопки "Подтвердить заказ" его редиректило на страницу платежной системы с которой у нас договор.

 

Никак не могу найти эту обработку :(

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 3 months later...

И как сделать так чтоб, перенаправляло на платежнку после выполнения отправки 

 

В файле /catalog/controller/checkout/success.php такой код:

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

// Сохраняем данные заказа в локальные переменные, для последующей передачи в платёжную систему
$need_redirect = $this->session->data["payment_method"]["code"];
$sum_order = $this->session->data['all_sum'];
$oderidnow = $this->session->data['order_id'];
// Окончание сохранения данных

unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['guest']);
unset($this->session->data['comment']);
unset($this->session->data['order_id']);
unset($this->session->data['coupon']);
unset($this->session->data['reward']);
unset($this->session->data['voucher']);
unset($this->session->data['vouchers']);
unset($this->session->data['salon']);
}

// Подготавливаем сумму заказа, в необходимом для платёжной системы формате
$sum_order = str_replace(" руб.", "", $sum_order);
$sum_order = str_replace(" ", "", $sum_order);
$sum_order = $sum_order.".00";

// Если был выбран пункт "Оплата картой на сайте" - редиректим клиента на платёжную систему, передавая все необходимые данные. Звёздочки - это данные от платёжной системы, выдаваемые при регистрации
if ($need_redirect == "cos") {
$hashmd5 = md5("MerchantId=*****&OrderId=$oderidnow&Amount=$sum_order&Currency=RUB&PrivateSecurityKey=**********");
echo "<script type=\"text/javascript\">location = 'https://secure.payonlinesystem.com/ru/payment/?MerchantId=*****&OrderId=$oderidnow&Amount=$sum_order&Currency=RUB&SecurityKey=$hashmd5';</script>";
}
Надіслати
Поділитися на інших сайтах


обработка кнопки "Подтвердить" не в /catalog/controller/checkout/success.php
в success вывод сообщения "спасибо за покупку"

а код подтверждения находится в каждом модуле оплаты

/catalog/view/theme/default/template/payment/* который ведет либо на свой контроллер, либо сразу на сайт оплаты

Надіслати
Поділитися на інших сайтах

  • 2 years later...

Думаю мне лучше всего задать вопрос в этой теме. Версия 1.5.5.1.2

Ситуация такая, что мне нужно, чтобы кнопка "Подтверждение заказа" при выборе способа оплаты "cod_1" перенаправляла покупателя на внутренний файл pay.php, который лежит в корне сайта.

 

Как я понимаю, нужно что-то менять либо в файле /catalog/view/theme/default/template/payment/cod_1.tpl, либо в catalog/controller/payment/cod_1.php , но какую именно конструкцию нужно написать - не ясно.

--------------------------------------

 

/catalog/view/theme/default/template/payment/cod_1.tpl

<div class="buttons">
  <div class="right">
    <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="button" />
  </div>
</div>
<script type="text/javascript"><!--
$('#button-confirm').bind('click', function() {
	$.ajax({ 
		type: 'get',
		url: 'index.php?route=payment/cod_1/confirm',
		success: function() {
			location = '<?php echo $continue; ?>';
		}		
	});
});
//--></script> 

-------------------------------------

 

catalog/controller/payment/cod_1.php

<?php
class ControllerPaymentCod extends Controller {
	protected function index() {
    	$this->data['button_confirm'] = $this->language->get('button_confirm');

		$this->data['continue'] = $this->url->link('checkout/success');
		
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/cod.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/payment/cod.tpl';
		} else {
			$this->template = 'default/template/payment/cod.tpl';
		}	
		
		$this->render();
	}
	
	public function confirm() {
		$this->load->model('checkout/order');
		
		$this->model_checkout_order->confirm($this->session->data['order_id'], $this->config->get('cod_order_status_id'));
	}
}
?>

PS сперва были подозрения, что может нужно править /catalog/controller/checkout/success.php или catalog\view\theme\default\template\checkout\checkout.tpl  - но вроде их все же трогать не надо.

Змінено користувачем University
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.