Как убрать один из ненужных шагов оформления заказа в движке сайта OpenCart 2
Invite pending
В общем, создал свой интернет магазин на базе 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');, которое по-сути нажимает кнопку за пользователя и убрали лишние нагромождения, чтобы не было тормозов.
На этом всё, надеюсь, информация оказалось полезной!