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

Как пропустить 3 шаг в оформлении заказа opencart 2.0?


Recommended Posts

Как пропустить 3 шаг в оформлении заказа opencart 2.0? Я пробовал пропустить шаг 3 с помощью этого:
<script language="Javascript" type="text/javascript">
$(document).ready(function(){
$('#button-shipping-address').trigger('click');
});
</script>

Скрипт нажимает кнопку и переходит на следующий шаг, но следующий шаг начинает открываться и закрываться и дергается. При оформлении заказа без регистрации все нормально, но при оформлении заказа с регистрацией это происходит.

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


Не стоит вставлять такой javascript в shipping_address.tpl, происходит зацикливание. Откройте checkout.tpl и посмотрите на делегирование события нажатия на кнопку, которую надо кликнуть.

$(document).delegate('#button-shipping-address', 'click', function() {  с 430 строки, по клику произойдет следующее

  • Post на index.php?route=checkout/shipping_address/save
  • Два почти параллельных запроса index.php?route=checkout/shipping_method и index.php?route=checkout/shipping_address
  • После получения результата с index.php?route=checkout/shipping_method стартует index.php?route=checkout/shipping_address и как раз тут зацикливание
Что можно сделать - найти обработчик кнопки со второго шага

 

// Payment Address

$(document).delegate('#button-payment-address', 'click', function() { 337 строка

 

Далее найти где вытаскивается html 3-го шага

$.ajax({   url: 'index.php?route=checkout/shipping_address',  374 строка

 

И после вставки в dom html кликнуть на кнопку

$.ajax({

url: 'index.php?route=checkout/shipping_address',

dataType: 'html',

success: function(html) {

$('#collapse-shipping-address .panel-body').html(html);

$('#collapse-shipping-address').parent().find('.panel-heading .panel-title').html('');

$('a[href=\'#collapse-shipping-address\']').trigger('click');

$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('');

$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('');

$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('');

$('#button-shipping-address').trigger('click'); // <-- здесь имитируем клик

},

error: function(xhr, ajaxOptions, thrownError) {

alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);

}

});

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


  • 2 weeks later...
  • 1 year later...

Не стоит вставлять такой javascript в shipping_address.tpl, происходит зацикливание. Откройте checkout.tpl и посмотрите на делегирование события нажатия на кнопку, которую надо кликнуть.

$(document).delegate('#button-shipping-address', 'click', function() {  с 430 строки, по клику произойдет следующее

  •  
  • Post на index.php?route=checkout/shipping_address/save
  • Два почти параллельных запроса index.php?route=checkout/shipping_method и index.php?route=checkout/shipping_address
  • После получения результата с index.php?route=checkout/shipping_method стартует index.php?route=checkout/shipping_address и как раз тут зацикливание
Что можно сделать - найти обработчик кнопки со второго шага

 

// Payment Address

$(document).delegate('#button-payment-address', 'click', function() { 337 строка

 

Далее найти где вытаскивается html 3-го шага

$.ajax({   url: 'index.php?route=checkout/shipping_address',  374 строка

 

И после вставки в dom html кликнуть на кнопку

$.ajax({

url: 'index.php?route=checkout/shipping_address',

dataType: 'html',

success: function(html) {

$('#collapse-shipping-address .panel-body').html(html);

$('#collapse-shipping-address').parent().find('.panel-heading .panel-title').html('');

$('a[href=\'#collapse-shipping-address\']').trigger('click');

$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('');

$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('');

$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('');

$('#button-shipping-address').trigger('click'); // <-- здесь имитируем клик

},

error: function(xhr, ajaxOptions, thrownError) {

alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);

}

});

 

 

Если очень внимательно посмотреть на этот код, то решение лежит в строчке

<?php if ($shipping_required) { ?>

 

Здесь написано о том, что если в админке для данного товара установлено значение "Необходима доставка: -> Да

то будет показываться Шаг-3

А если $shipping_required ==false

то шага-3 просто не будет.

Идете в базу данных через phpMyadmin  и SQL-запросом обновляете в таблице oc_product поле shipping

Записываете туда ноль (0):

UPDATE `oc_product` SET `shipping`=0

Делов-то.

И код коверкать не надо.

А чтобы обеспечить свое будущее, нужно установить для этого поля значение по умолчанию = 0

Тогда при заведении нового товара в базу всегда будет писаться 0, если в админке не указано иное.

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


  • 5 months later...
В 08.10.2016 в 22:54, jazzauto сказал:

 

Если очень внимательно посмотреть на этот код, то решение лежит в строчке

<?php if ($shipping_required) { ?>

 

Здесь написано о том, что если в админке для данного товара установлено значение "Необходима доставка: -> Да

то будет показываться Шаг-3

А если $shipping_required ==false

то шага-3 просто не будет.

Идете в базу данных через phpMyadmin  и SQL-запросом обновляете в таблице oc_product поле shipping

Записываете туда ноль (0):

UPDATE `oc_product` SET `shipping`=0

Делов-то.

И код коверкать не надо.

А чтобы обеспечить свое будущее, нужно установить для этого поля значение по умолчанию = 0

Тогда при заведении нового товара в базу всегда будет писаться 0, если в админке не указано иное.

И в этом случае отключается и выбор способа доставки, который нужен, в отличии от дублированного адреса... Делов-то.

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

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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