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

[Решено] Оформление заказа спрятать шаг 2


dibiliti

Recommended Posts

Доброго времени суток Уважаемые форумчане! Не нашел на форуме как можно спрятать при оформлении шаг 2 (Профиль & Платежная информация) убрал первый шаг, нашел информацию как убрать 3 и 4, а второй не понятно. Или хотя бы только 3 шаг без 4. Спасибо большое.

С Уважением

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


Уважаемый dibiliti :-D  Вы можете сказать конкретно, что хотите видеть в форме оформления заказа? Здесь можно сократить все до двух шагов. Например: Шаг 1 - Личные данные и адрес доставки; Шаг 2 - подтверждение заказа. В вашем вопросе я не прослеживаю конкретики, поэтому и не отвечу сейчас. Объясните толково и я постараюсь помочь.

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

Уважаемый dibiliti :-D  Вы можете сказать конкретно, что хотите видеть в форме оформления заказа? Здесь можно сократить все до двух шагов. Например: Шаг 1 - Личные данные и адрес доставки; Шаг 2 - подтверждение заказа. В вашем вопросе я не прослеживаю конкретики, поэтому и не отвечу сейчас. Объясните толково и я постараюсь помочь.

Доброго утра! Извиняюсь что изначально четко не сформулировал. В форме хотелось бы видеть: 

Шаг 3: Адрес доставки
Шаг 4: Способ доставки
Шаг 5: Способ оплаты
Шаг 6: Подтверждение заказа

(Убрать Шаг 2: Профиль & Платежная информация)

 

Как сократить всё до двух я тоже вроде нашел, а вот как убрать один шаг (второй) не нашел. Буду очень благодарен если ответите. Спасибо. 

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


То, что я изложу ниже, используется в тех случаях, когда регистрация на сайте отсутствует (по просьбе пользователя dibiliti в ЛС)

 

Значит так... Делать будем следующее:

 

  • Шаг 1. Персональные данные и Адрес доставки
  • Шаг 2. Способ доставки
  • Шаг 3. Способ оплаты
  • Шаг 4. Подтверждение заказа

 

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

 

Открываем файл \catalog\view\theme\{Ваша_тема}\template\checkout\login.tpl.

 

Находим в нем код:

<input type="radio" name="account" value="register" id="register" checked="checked"/>
 <?php } else { ?>
 <input type="radio" name="account" value="register" id="register" />
 <?php } ?>
 <b><?php echo $text_register; ?></b></label>
 <br />
 <?php if ($guest_checkout) { ?>
 <label for="guest">
 <?php if ($account == 'guest') { ?>
 <input type="radio" name="account" value="guest" id="guest" checked="checked" />
 <?php } else { ?>
 <input type="radio" name="account" value="guest" id="guest" />

и меняем его на следующее

<input type="radio" name="account" value="register" id="register" />
 <?php } else { ?>
 <input type="radio" name="account" value="register" id="register" />
 <?php } ?>
 <b><?php echo $text_register; ?></b></label>
 <br />
 <?php if ($guest_checkout) { ?>
 <label for="guest">
 <?php if ($account == 'guest') { ?>
 <input type="radio" name="account" value="guest" id="guest" checked="checked" />
 <?php } else { ?>
 <input type="radio" name="account" value="guest" id="guest" checked="checked" />

Таким образом мы выделим способ оформления заказа без регистрации по-умолчанию. Теперь попытаемся скрыть этот шаг из видимости и направить покупателя сразу на ввод персональной информации.

 

Для этого в этом же файле в самом верху вставляем скрипт:

<script language="Javascript" type="text/javascript">
 $(document).ready(function(){
 $('#button-account').trigger('click');
 });
</script>

Все, наш OpenCart будет игнорировать первый шаг и сразу направлять покупателя ко второму шагу. Осталось лишь в таблице стилей скрыть этот шаг.

 

Открываем файл \catalog\view\theme\{Ваша_тема}\stylesheet\stylesheet.css и добавляем:

#checkout {
 display:none; 
}

Идем дальше.

 

Открываем файл \catalog\view\theme\{Ваша_тема}\template\checkout\guest.tpl

 

Находим в нем код:

<?php if ($shipping_required) { ?>
<div style="clear: both; padding-top: 15px; border-top: 1px solid #DDDDDD;">
  <?php if ($shipping_address) { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />
  <?php } else { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" />
  <?php } ?>
  <label for="shipping"><?php echo $entry_shipping; ?></label>
  <br />
  <br />
  <br />
</div>
<?php } ?>

и меняем его на следующее

<?php if ($shipping_required) { ?>
<div style="display:none">
  <?php if ($shipping_address) { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />
  <?php } else { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />
  <?php } ?>
  <label for="shipping"><?php echo $entry_shipping; ?></label>
  <br />
  <br />
  <br />
</div>
<?php } ?>

Удаляем дублирование адреса доставки (стандартный Шаг 3)

 

Открываем файл \catalog\view\theme\{Ваша_тема}\template\checkout\checkout.tpl

 

Находим в нем код:

<div id="shipping-address">
      <div class="checkout-heading"><?php echo $text_checkout_shipping_address; ?></div>
      <div class="checkout-content"></div>
</div>

и меняем его на следующее

<div style="display:none" id="shipping-address">
      <div class="checkout-heading"><?php echo $text_checkout_shipping_address; ?></div>
      <div class="checkout-content"></div>
</div>

Вроде бы и все - дело сделано))) Осталось исправить маленькую деталь.

 

Качаем вот это checkout.php и запихиваем по адресу \catalog\language\russian\checkout\

 

...этим мы исправим названия шагов при оформлении заказа.

 

Ну, теперь точно все. Должно работать :) Если что-то пропустил - пишите - исправим)))

 

P.S. Не забываем ставить +  :)

 

  • +1 6
Надіслати
Поділитися на інших сайтах

  • 1 month later...
  • 7 months later...

Действительно, как это сделать при существующей регистрации? Если оформлять заказ незарегистрированным пользователем, то всё работает как надо. Однако, если пользователь зарегистрирован, то шаг “адрес доставки” не пропускается автоматом, а если он ещё и скрыт, то оформление просто встаёт: Завершаю первый шаг и должен открыться следующий- выбор способа доставки, но он не открывается. Вероятно, какой-то скрипт нужно прописать на пропуск второго шага, однако не нашёл какой. Пробовал редактировать предлагаемый скрипт для пропуска предложения о регистрации, но это не помогло. Может у вас есть какие-то дополнительные соображения, что можно сделать? Сколько не искал, но не нашёл информации об этом. Пробовал адаптировать действия при оформлении гостем, но это не помогло, так что вопрос остаётся открытым, и думаю он достаточно важен, чтобы обратить на него внимание.

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


Не понимаю, почему не поставить замечательный модуль deeman -a Модуль Simple - упрощенная регистрация и заказ ?

Там всё что вам нужно!

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

  • 2 weeks later...

Потому что этот модуль платный...присоединяюсь к вопросу  пользователя ilia: как убрать 2-й или 3-й шаг оформления заказа с сохранением пошаговости для зарегистрированного пользователя?

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


  • 8 months later...

Если кто-нибудь, как и я, придет сюда из поисковика, не найдя ни одного простого и бесплатного рабочего решения в интернете (а их на данный момент действительно нет), то вот как я справился с задачей.

 

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

 

Файл catalog/view/theme/тема/template/checkout/checkout.tpl

 

Найти (строка 48)

        <?php } else { ?>
        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_payment_address; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-payment-address">
            <div class="panel-body"></div>
          </div>
        </div>
        <?php } ?>

Заменить на

        <?php } else { ?>
        <div class="panel panel-default"<?php if ($this->customer->isLogged()) echo " style='display: none'"; ?>>
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_payment_address; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-payment-address">
            <div class="panel-body"></div>
          </div>
        </div>
        <?php } ?>

Найти (строка 141)

    $.ajax({
        url: 'index.php?route=checkout/payment_address',
        dataType: 'html',
        success: function(html) {
            $('#collapse-payment-address .panel-body').html(html);
            
			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle"><?php echo $text_checkout_payment_address; ?> <i class="fa fa-caret-down"></i></a>');

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

Заменить на

    $.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" 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');
        },

На других темах строки будут другими, но общий принцип понятен.

Информацию о том, как отключить/скрыть/переименовать другие шаги легко найти в интернете, а вот именно с этим шагом была засада.

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


  • 1 month later...
  • 3 weeks later...

Если кто-нибудь, как и я, придет сюда из поисковика, не найдя ни одного простого и бесплатного рабочего решения в интернете (а их на данный момент действительно нет), то вот как я справился с задачей.

 

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

 

Файл catalog/view/theme/тема/template/checkout/checkout.tpl

 

Найти (строка 48)

        <?php } else { ?>
        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_payment_address; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-payment-address">
            <div class="panel-body"></div>
          </div>
        </div>
        <?php } ?>

Заменить на

        <?php } else { ?>
        <div class="panel panel-default"<?php if ($this->customer->isLogged()) echo " style='display: none'"; ?>>
          <div class="panel-heading">
            <h4 class="panel-title"><?php echo $text_checkout_payment_address; ?></h4>
          </div>
          <div class="panel-collapse collapse" id="collapse-payment-address">
            <div class="panel-body"></div>
          </div>
        </div>
        <?php } ?>

Найти (строка 141)

    $.ajax({
        url: 'index.php?route=checkout/payment_address',
        dataType: 'html',
        success: function(html) {
            $('#collapse-payment-address .panel-body').html(html);
            
			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle"><?php echo $text_checkout_payment_address; ?> <i class="fa fa-caret-down"></i></a>');

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

Заменить на

    $.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" 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');
        },

На других темах строки будут другими, но общий принцип понятен.

Информацию о том, как отключить/скрыть/переименовать другие шаги легко найти в интернете, а вот именно с этим шагом была засада.

у меня вообще нет таких строк (с вашей 48 строки), а поменяв код ajax вообще не один шаг открываться не стал

Остается актуальным вопрос: у зарегистрированного пользователя скрыв шаг "Адрес доставки" после платежной информации не переходит на "Способ доставки"  :cry:

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


  • 3 months later...

у меня вообще нет таких строк (с вашей 48 строки), а поменяв код ajax вообще не один шаг открываться не стал

Остается актуальным вопрос: у зарегистрированного пользователя скрыв шаг "Адрес доставки" после платежной информации не переходит на "Способ доставки"  :cry:

У вас какая версия, у меня 1.5.5.1.2, но т.к. у меня однозначно все клиенты проходят процедуру регистрации, то мне нужно было сделать, что бы было для всех, и в настройках уже системы я включил опцию - оформление заказа только зарегистрированные пользователи.

Далее изменил файлы:

catalog/view/theme/тема/template/checkout/checkout.tpl[/background]

ищем там

 <?php if (!$logged) { ?>

    <div id="payment-address">

      <div class="checkout-heading"><span><?php echo $text_checkout_account; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } else { ?>

    <div id="payment-address">

      <div class="checkout-heading"><span><?php echo $text_checkout_payment_address; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } ?>

Делаем (добавл код, выделенный красным), т.е. безусловно скрываем как и у зарегистрированных так и не у зарегистрированных. 

 <?php if (!$logged) { ?>

    <div id="payment-address">

      <div class="checkout-heading"<?php echo " style='display: none'"; ?>><span><?php echo $text_checkout_account; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } else { ?>

    <div id="payment-address">

      <div class="checkout-heading"<?php echo " style='display: none'"; ?>><span><?php echo $text_checkout_payment_address; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } ?>

Далее в этом же файле ниже нужно найти примерно такой код

<?php } else { ?>

$(document).ready(function() {

$.ajax({

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

dataType: 'html',

success: function(html) {

$('#payment-address .checkout-content').html(html);

 

$('#payment-address .checkout-content').slideDown('slow');

},

error: function(xhr, ajaxOptions, thrownError) {

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

}

});

});

<?php } ?>

и исправить его на такой, т.к.. у меня 3 и 4 пункты скрыты сами по себе, потому что то ли не включены способы доставки вобщем в настройках магазина в админке, они не выпадают сами без моего вмешательства. Но .т.к мы скрываем 2-й пункт а после него по смыслу мне нужно уже сразу на 5-й, то я указываю именно payment-method , который соответсвует 5-му пункту, вместо 2-го, которому соответсвует payment-address

<?php } else { ?>

$(document).ready(function() {

$.ajax({

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

dataType: 'html',

success: function(html) {

$('#payment-method .checkout-content').html(html);

 

$('#payment-method .checkout-content').slideDown('slow');

},

error: function(xhr, ajaxOptions, thrownError) {

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

}

});

});

<?php } ?>

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


у меня вообще нет таких строк (с вашей 48 строки), а поменяв код ajax вообще не один шаг открываться не стал

Остается актуальным вопрос: у зарегистрированного пользователя скрыв шаг "Адрес доставки" после платежной информации не переходит на "Способ доставки"  :cry:

У вас какая версия, у меня 1.5.5.1.2, но т.к. у меня однозначно все клиенты проходят процедуру регистрации, то мне нужно было сделать, что бы было для всех, и в настройках уже системы я включил опцию - оформление заказа только зарегистрированные пользователи.

Далее изменил файлы:

catalog/view/theme/тема/template/checkout/checkout.tpl[/background]

ищем там

 <?php if (!$logged) { ?>

    <div id="payment-address">

      <div class="checkout-heading"><span><?php echo $text_checkout_account; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } else { ?>

    <div id="payment-address">

      <div class="checkout-heading"><span><?php echo $text_checkout_payment_address; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } ?>

Делаем (добавл код, выделенный красным), т.е. безусловно скрываем как и у зарегистрированных так и не у зарегистрированных. 

 <?php if (!$logged) { ?>

    <div id="payment-address">

      <div class="checkout-heading"<?php echo " style='display: none'"; ?>><span><?php echo $text_checkout_account; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } else { ?>

    <div id="payment-address">

      <div class="checkout-heading"<?php echo " style='display: none'"; ?>><span><?php echo $text_checkout_payment_address; ?></span></div>

      <div class="checkout-content"></div>

    </div>

    <?php } ?>

Далее в этом же файле ниже нужно найти примерно такой код

<?php } else { ?>

$(document).ready(function() {

$.ajax({

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

dataType: 'html',

success: function(html) {

$('#payment-address .checkout-content').html(html);

 

$('#payment-address .checkout-content').slideDown('slow');

},

error: function(xhr, ajaxOptions, thrownError) {

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

}

});

});

<?php } ?>

и исправить его на такой, т.к.. у меня 3 и 4 пункты скрыты сами по себе, потому что то ли не включены способы доставки вобщем в настройках магазина в админке, они не выпадают сами без моего вмешательства. Но .т.к мы скрываем 2-й пункт а после него по смыслу мне нужно уже сразу на 5-й, то я указываю именно payment-method , который соответсвует 5-му пункту, вместо 2-го, которому соответсвует payment-address

<?php } else { ?>

$(document).ready(function() {

$.ajax({

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

dataType: 'html',

success: function(html) {

$('#payment-method .checkout-content').html(html);

 

$('#payment-method .checkout-content').slideDown('slow');

},

error: function(xhr, ajaxOptions, thrownError) {

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

}

});

});

<?php } ?>

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


Незнаю как удалить затроившиеся сообщения, модератор убери пожалуйсто лишние 14, 15 сообщения, а в этом я закончу обяснение, начатое в 13 посте

что бы при открытии 5 пункта не ругался сайт на методы оплаты, т.к. они из за пропуска 2-го пункта не был определен адрес доставки, то укажем его явно брать из адреса клиента в файле

catalog/controller/checkout/payment_method.php

 

перед строками пропишите строку (красным выделена

        $this->session->data['payment_address_id'] = $this->customer->getAddressId();

 

if ($this->customer->isLogged() && isset($this->session->data['payment_address_id'])) {
$payment_address = $this->model_account_address->getAddress($this->session->data['payment_address_id']);
} elseif (isset($this->session->data['guest'])) {
$payment_address = $this->session->data['guest']['payment'];
}
 
ну и косметические доработки в файле с названиями пунктов

catalog/language/russian/checkout/checkout.php

там названия пунктов переписать для красоты, что бы не 1. 5. и 6 а красиво 1,2 и 3

 

Рекомендую сохранять копии оригинальных файлов перед изменением.

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


  • 4 months later...

if ($this->customer->isLogged() && isset($this->session->data['payment_address_id'])) {

$payment_address = $this->model_account_address->getAddress($this->session->data['payment_address_id']);
} elseif (isset($this->session->data['guest'])) {
$payment_address = $this->session->data['guest']['payment'];
}
 
 

там такая строка два раза встречается. перед какойстроку дописывать та что красным???

 

перед той и той добавлял , все равно ошибка 

post-683451-0-89176700-1454506557_thumb.png

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


Я нашел решение проще!

 

Итак. Чтобы в opencart убрать  второй шаг, платежная информация надо:

 

 

1) Открыть  catalog\view\theme\l<ВАША ТЕМА>\template\checkout\checkout.tpl

 

изменить в нем код 

$('#payment-address .checkout-content').html(html); 
$('#payment-address .checkout-content').slideDown('slow'); 

на код:

$('#payment-address .checkout-content').html(html);
$('#payment-address #button-payment-address').click(); 

2) найти в этом же файле строку (встречается 2 раза)

<div id="payment-address">

и скрыть этот див,  заменив строку на

<div id="payment-address" style="display:none">

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

А сам див с вводом платежной инфы - скроется.

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


  • 1 month later...

Я нашел решение проще!

 

Итак. Чтобы в opencart убрать  второй шаг, платежная информация надо:

 

 

1) Открыть  catalog\view\theme\l<ВАША ТЕМА>\template\checkout\checkout.tpl

 

изменить в нем код 

$('#payment-address .checkout-content').html(html); 
$('#payment-address .checkout-content').slideDown('slow'); 

на код:

$('#payment-address .checkout-content').html(html);
$('#payment-address #button-payment-address').click(); 

2) найти в этом же файле строку (встречается 2 раза)

<div id="payment-address">

и скрыть этот див,  заменив строку на

<div id="payment-address" style="display:none">

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

А сам див с вводом платежной инфы - скроется.

 

Код

 

 

 

$('#payment-address .checkout-content').html(html); 

$

('#payment-address .checkout-content').slideDown('slow'); 

 

тоже 2 раза встречается.

 

Всё прекрасно работает.

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


  • 2 weeks later...

То, что я изложу ниже, используется в тех случаях, когда регистрация на сайте отсутствует (по просьбе пользователя dibiliti в ЛС)

 

Значит так... Делать будем следующее:

 

  • Шаг 1. Персональные данные и Адрес доставки
  • Шаг 2. Способ доставки
  • Шаг 3. Способ оплаты
  • Шаг 4. Подтверждение заказа

 

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

 

Открываем файл \catalog\view\theme\{Ваша_тема}\template\checkout\login.tpl.

 

Находим в нем код:

<input type="radio" name="account" value="register" id="register" checked="checked"/>
 <?php } else { ?>
 <input type="radio" name="account" value="register" id="register" />
 <?php } ?>
 <b><?php echo $text_register; ?></b></label>
 <br />
 <?php if ($guest_checkout) { ?>
 <label for="guest">
 <?php if ($account == 'guest') { ?>
 <input type="radio" name="account" value="guest" id="guest" checked="checked" />
 <?php } else { ?>
 <input type="radio" name="account" value="guest" id="guest" />

и меняем его на следующее

<input type="radio" name="account" value="register" id="register" />
 <?php } else { ?>
 <input type="radio" name="account" value="register" id="register" />
 <?php } ?>
 <b><?php echo $text_register; ?></b></label>
 <br />
 <?php if ($guest_checkout) { ?>
 <label for="guest">
 <?php if ($account == 'guest') { ?>
 <input type="radio" name="account" value="guest" id="guest" checked="checked" />
 <?php } else { ?>
 <input type="radio" name="account" value="guest" id="guest" checked="checked" />

Таким образом мы выделим способ оформления заказа без регистрации по-умолчанию. Теперь попытаемся скрыть этот шаг из видимости и направить покупателя сразу на ввод персональной информации.

 

Для этого в этом же файле в самом верху вставляем скрипт:

<script language="Javascript" type="text/javascript">
 $(document).ready(function(){
 $('#button-account').trigger('click');
 });
</script>

Все, наш OpenCart будет игнорировать первый шаг и сразу направлять покупателя ко второму шагу. Осталось лишь в таблице стилей скрыть этот шаг.

 

Открываем файл \catalog\view\theme\{Ваша_тема}\stylesheet\stylesheet.css и добавляем:

#checkout {
 display:none; 
}

Идем дальше.

 

Открываем файл \catalog\view\theme\{Ваша_тема}\template\checkout\guest.tpl

 

Находим в нем код:

<?php if ($shipping_required) { ?>
<div style="clear: both; padding-top: 15px; border-top: 1px solid #DDDDDD;">
  <?php if ($shipping_address) { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />
  <?php } else { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" />
  <?php } ?>
  <label for="shipping"><?php echo $entry_shipping; ?></label>
  <br />
  <br />
  <br />
</div>
<?php } ?>

и меняем его на следующее

<?php if ($shipping_required) { ?>
<div style="display:none">
  <?php if ($shipping_address) { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />
  <?php } else { ?>
  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />
  <?php } ?>
  <label for="shipping"><?php echo $entry_shipping; ?></label>
  <br />
  <br />
  <br />
</div>
<?php } ?>

Удаляем дублирование адреса доставки (стандартный Шаг 3)

 

Открываем файл \catalog\view\theme\{Ваша_тема}\template\checkout\checkout.tpl

 

Находим в нем код:

<div id="shipping-address">
      <div class="checkout-heading"><?php echo $text_checkout_shipping_address; ?></div>
      <div class="checkout-content"></div>
</div>

и меняем его на следующее

<div style="display:none" id="shipping-address">
      <div class="checkout-heading"><?php echo $text_checkout_shipping_address; ?></div>
      <div class="checkout-content"></div>
</div>

Вроде бы и все - дело сделано))) Осталось исправить маленькую деталь.

 

Качаем вот это attachicon.gifcheckout.php и запихиваем по адресу \catalog\language\russian\checkout\

 

...этим мы исправим названия шагов при оформлении заказа.

 

Ну, теперь точно все. Должно работать :) Если что-то пропустил - пишите - исправим)))

 

P.S. Не забываем ставить +  :)

Убрал шаг 3, после есть ПРОБЛЕМА:  МОЙ АДРЕС ДОСТАВКИ СОВПАДАЕТ С ПЛАТЁЖНЫМ. -если не отметить/подтвердить-то в следующий шаг попасть невозможно! Вопрос: Как сделать, чтобы  "МОЙ АДРЕС ДОСТАВКИ СОВПАДАЕТ С ПЛАТЁЖНЫМ" был подтвержден постоянно по умолчанию и был невидимым на экране и таким образом был свободный переход к Шаг 2: Способ доставки покупателем?  :mellow: Помогите чайнику....

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


Как убрать с экрана дисплея внешнего вида  чекаут галочку флажек:

В quest.tpl

<div style="clear: both; padding-top: 15px; border-top: 1px solid #DDDDDD;">

  <?php if ($shipping_address) { ?>

  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />

меняем


<div style="display: none">

  <?php if ($shipping_address) { ?>

  <input type="checkbox" name="shipping_address" value="1" id="shipping" checked="checked" />

И НА ЭКРАНЕ НИЧЕГО НЕ ВИДНО!!! А функция то работает Еххаааа!!! Даже чайники что то могут!

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


  • 5 months later...

А может кто-то объяснить, как все же оставить 

  • Шаг 1. Персональные данные и Адрес доставки
  • Шаг 2. Способ доставки
  • Шаг 3. Способ оплаты
  • Шаг 4. Подтверждение заказа

с вариантом, когда пользователь зарегистрирован и когда происходит оформление заказа без регистрации для версии 2.1.0.1 а то тут половину понятно как делать, а половину нет. и только один человек версию движка указал

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


  • 2 weeks later...

А может кто-то объяснить, как все же оставить 

  • Шаг 1. Персональные данные и Адрес доставки
  • Шаг 2. Способ доставки
  • Шаг 3. Способ оплаты
  • Шаг 4. Подтверждение заказа

с вариантом, когда пользователь зарегистрирован и когда происходит оформление заказа без регистрации для версии 2.1.0.1 а то тут половину понятно как делать, а половину нет. и только один человек версию движка указал

 

Тут все описано. У меня для оформления с регистрацией все получилось на версии ocStore 2.1.0.2.1

На всякий случай продублирую, т.к. сам долго искал.

 

 

В общем, создал свой интернет магазин на базе 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');, которое по-сути нажимает кнопку за пользователя и убрали лишние нагромождения, чтобы не было тормозов.

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

 

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


Здравствуйте,

Версия ocStore 1.5.5.1.2
Подскажите как убрать в /checkout/ некоторые обязательные поля (то есть отключить их)? Например, индекс, улица чтоб клиентам было проще заполнять форму, а то много лишних полей требуют заполнения.

Спасибо.

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


  • 3 weeks later...

Тут все описано. У меня для оформления с регистрацией все получилось на версии ocStore 2.1.0.2.1

На всякий случай продублирую, т.к. сам долго искал.

Забыл поблагодарить! Спасибо большое! все получилось.  

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


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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