Как убрать один из ненужных шагов оформления заказа в движке сайта OpenCart 2

image

В общем, создал свой интернет магазин на базе OpenCart 2.0. Для уменьшения времени оформления заказа было решено сократить регистрацию. Убрал часть шагов и полей(как это делается можно без проблем найти в Гугле), включая 3й шаг(Адрес доставки). Абсолютно бесполезный по своей сути пункт. Убирал по этой схеме. Видимо, авторы сего не особо вдавались в подробности решения задачи, поэтому на практике регулярно возникала проблема: из-за того, что в базу недоотсылалась часть информации о адресе доставке, в четвёртом шаге(Способ доставки) отсутствовали способы доставки(да-да, извините за тавтологию).

Решение оказалось достаточно банальное и даже короче, чем исходное.

Первое — это визуально убрать 3й шаг. Все махинации проводятся в /catalog/view/theme/default/template/checkout.

Сделайте бекап, всякое случиться может!

<div class="panel panel-default" style="display:none">
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_shipping_address; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-shipping-address">
            <div class="panel-body"></div>
          </div>
        </div>

Важно! Способ не работает, если вы комментируете код. Так что просто добавьте атрибут display: none;.

Второе — вот этот код:

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" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle"><?php echo $text_checkout_shipping_address; ?> <i class="fa fa-caret-down"></i></a>');

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

			$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('<?php echo $text_checkout_shipping_method; ?>');
			$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('<?php echo $text_checkout_payment_method; ?>');
			$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('<?php echo $text_checkout_confirm; ?>');
                    },

заменить на


success: function(html) {
                        $('#collapse-shipping-address .panel-body').html(html);

			$('#button-shipping-address').trigger('click');

			$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('<?php echo $text_checkout_shipping_method; ?>');
			$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('<?php echo $text_checkout_payment_method; ?>');
			$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('<?php echo $text_checkout_confirm; ?>');
                    },   

Как видите, мы добавили событие $('#button-shipping-address').trigger('click');, которое по-сути нажимает кнопку за пользователя и убрали лишние нагромождения, чтобы не было тормозов.

На этом всё, надеюсь, информация оказалось полезной!
Tags:
opencart, html, jquery

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.