Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


Recommended Posts

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

 

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

 

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

Link to comment
Share on other sites


  • 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>";
}
Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites

  • 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  - но вроде их все же трогать не надо.

Edited by University
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.