Всё о web

Для чайников и не только


Opencart Убираем шаги оплаты и доставки в оформлении заказа

Декабрь 10, 2015

Если Вы уже упростили форму оформления заказа, Вам может потребоваться удалить шаги с выбором способа доставки и способа оплаты.

1. Отключаем выбор способа доставки. Открываем /system/library/cart.php, находим функцию:


	public function hasShipping() {
		$shipping = false;

		foreach ($this->getProducts() as $product) {
			if ($product['shipping']) {
				$shipping = true;

				break;
			}
		}

		return $shipping;
	}

В самом начале функции добавляем строчку с отключением доставки, в итоге получается:

	public function hasShipping() {
		return false;
		
		$shipping = false;

		foreach ($this->getProducts() as $product) {
			if ($product['shipping']) {
				$shipping = true;

				break;
			}
		}

		return $shipping;
	}

2. Далее, отключаем выбор способа оплаты. Заходим в админку, открываем: "Мено" -> "Модули" -> "Оплата". Отключаем все способы кроме "Оплата при доставке". Заходим в настройку этого способа оплаты и проверяем его настройки:

Нижняя граница: 0

Статус заказа после оплаты: Complete

Географическая зона: Все регионы

Статус: Включено

Порядок сортировки: 0

Далее открываем файл: /catalog/view/theme/default/template/checkout/payment_method.tpl в самом верху файла добавляем скрипт, который автоматически нажимает кнопку "Далее":

<script>
 $(document).ready(function(){
 setTimeout(function(){
  $('#button-payment-method').trigger('click');
  },1000);
 });
</script>

Чтобы яваскрипт смог нажать кнопку "далее", нужно установить галочку в пункте "Я прочитал Terms & Conditions и согласен с условиями". Находим этот кусочек кода:

    <?php if ($agree) { ?>
    <input type="checkbox" name="agree" value="1" checked="checked" />
    <?php } else { ?>
    <input type="checkbox" name="agree" value="1" />
    <?php } ?>

И меняем его на:

    <input type="checkbox" name="agree" value="1" checked="checked" />

Теперь полностью скрываем этот шаг из гармошки, открываем файл: /catalog/view/theme/default/template/checkout/checkout.tpl, находим следующий код:

        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_payment_method; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-payment-method">
            <div class="panel-body"></div>
          </div>
        </div>

Меняем его на:

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

В заключении открываем файл: /catalog/language/russian/checkout/checkout.php в котором изменяем заголовки для оставшихся двух шагов.

useless_steps1

Как обычно, пример можно посмотреть на тестовом сайте.



Комментарии

28 комментариев | “Opencart Убираем шаги оплаты и доставки в оформлении заказа


  1. Аватар Ден:

    Все работает, автору +.

  2. Аватар Андрей:

    Добрый день.
    Возникла проблема в скрытии способов доставки.
    Делал все по инструкции. После шага в котором мы редактируем /system/library/cart.php
    пропадает способ доставки.

  3. Аватар Андрей:

    Илья, добрый день!
    После отключения способа доставки /system/library/cart.php отключается так же способ оплаты и дальше подтверждение не идет.
    файл cart.php у меня находится чуток далее чем у Вас в примере /system/library/cart/cart.php
    версия опенкарта 2.3.
    Очень жду Вашей помощи.


Comments are closed.