COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Инструкция для упрощения форму заказа в Opercart 2


Recommended Posts

Не нашел точную инструкцию для упрощения форму заказа в Opercart 2, поэтому решил написать инструкцию, как я это сделал для этого я использовал информацию из след сайтов.

1.       https://allwebstuff.info/быстрый-заказ-opencart-2/

2.       http://jul-collection.com/opencart-oformlenie-zakaza-ubiraem-nenuzhnyie-shagi.html

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

 

Скрытый текст

 

Шаг 1 (файл login.tpl)

A) Переключения с регистрации на без регистрации.

В файле: /catalog/view/theme/default/template/checkout/login.tpl находим:

<div class="radio">

      <label>

        <?php if ($account == 'register') { ?>

        <input type="radio" name="account" value="register" checked="checked" />

        <?php } else { ?>

        <input type="radio" name="account" value="register" />

        <?php } ?>

        <?php echo $text_register; ?></label>

    </div>

    <?php if ($checkout_guest) { ?>

    <div class="radio">

      <label>

        <?php if ($account == 'guest') { ?>

        <input type="radio" name="account" value="guest" checked="checked" />

        <?php } else { ?>

        <input type="radio" name="account" value="guest" />

        <?php } ?>

        <?php echo $text_guest; ?></label>

    </div>

 

Меняем на:

   <div class="radio">

      <label>

        <?php if ($account == 'register') { ?>

        <input type="radio" name="account" value="register" />

        <?php } else { ?>

        <input type="radio" name="account" value="register" />

        <?php } ?>

        <?php echo $text_register; ?></label>

    </div>

    <?php if ($checkout_guest) { ?>

    <div class="radio">

      <label>

        <?php if ($account == 'guest') { ?>

        <input type="radio" name="account" value="guest" checked="checked" />

        <?php } else { ?>

        <input type="radio" name="account" value="guest" checked="checked"/>

        <?php } ?>

        <?php echo $text_guest; ?></label>

    </div>

 

Теперь по умолчанию всегда будет выбрано «без регистрации».

B) Отключаем шаг 1 полностью.

Создаем имитацию нажатие кнопку но так как в opencart 2 версии $(‘#button-account’).trigger(‘click’) сразу после загрузки не срабатывает, по этому вешаем таймаут в 1 секунду:

В файле: /catalog/view/theme/default/template/checkout/login.tpl в самом начале прописываем:

<script>

 $(document).ready(function(){

 setTimeout(function(){

  $('#button-account').trigger('click');

  },1000);

 });

</script>

 

А теперь чтобы вообще спрятать шаг открываем: /catalog/view/theme/default/template/checkout/checkout.tpl и находим первую такую секцию:

<div class="panel-group" id="accordion">

  <div class="panel panel-default">

 

И меняем на:

<div class="panel-group" id="accordion">

  <div class="panel panel-default" style="display:none;">

 

Получается panel-group это названия формы шага 1 а мы просто добавили стиль спрятать style="display:none;" чтобы спрятать эту форму

 

Шаг 2 (guest.tpl)

Отключаем, делаем необязательным и скрываем что не нужна.

Форма держит

обязательные

необязательные

Имя

Факс

Фамилия

Компания

E-Mail

Адрес 2

Телефон

 

Адрес 1

 

Город

 

Почтовый индекс

 

Страна и Регион / Область

 

 

Например мне нужна чтобы на форме были только след. данные:

·         Имя (я его поменял на ФИО) но чтобы был необязательным для клиента.

·         E-Mail  но чтобы был необязательным для клиента.

·         Телефон – Обязательным

·         Адрес и город но чтобы были необязательным для клиента.

Вы определитесь для себя какие данные Вам нужны.

Этап1) - Сначала убираем  те данные которые не обязательные (без *) и не нужны.

В файле: /catalog/view/theme/default/template/checkout/guest.tpl находим их и просто добавляем стиль спрятать style="display:none;"  :

·         Факс (fax), Компания (company) , адрес 2 (address 2) и индекс (postcode)

<div class="form-group"

        <label class="control-label" for="input-payment-fax"><?php echo $entry_fax; ?></label>

        <input type="text" name="fax" value="<?php echo $fax; ?>" placeholder="<?php echo $entry_fax; ?>" id="input-payment-fax" class="form-control" />

      </div>

Добавляем стиль получаем

<div class="form-group" style="display:none;">

        <label class="control-label" for="input-payment-fax"><?php echo $entry_fax; ?></label>

        <input type="text" name="fax" value="<?php echo $fax; ?>" placeholder="<?php echo $entry_fax; ?>" id="input-payment-fax" class="form-control" />

      </div>

 

Также поступаем с Компания (company) и адрес 2 (address 2)

Этап2)- Убираем  те данные которые обязательные (с *) но не нужны. Для этого надо добавить стиль спрятать и опередить какое то значения например =&nbsp чтобы opencart не ругался и выдавал ошибку на незаполненные поля

·         Фамилия (lastname)

<div class="form-group required">

        <label class="control-label" for="input-payment-lastname"><?php echo $entry_lastname; ?></label>

        <input type="text" name="lastname" value="<?php echo $lastname; ?>" placeholder="<?php echo $entry_lastname; ?>" id="input-payment-lastname" class="form-control" />

      </div>

Добавляем стиль получаем

<div class="form-group required" style="display:none;">

        <label class="control-label" for="input-payment-lastname"><?php echo $entry_lastname; ?></label>

        <input type="text" name="lastname" value="&nbsp" placeholder="<?php echo $entry_lastname; ?>" id="input-payment-lastname" class="form-control" />

      </div>

 

Этап3)- Пишем значения на тех полей которые обьязательные но хотим чтобы клиент сам решал заполнить их или нет например Имя (firstname), e-mail (email), адрес 1 (address-1) и город (city)

Для Имя находим

<div class="form-group required">

        <label class="control-label" for="input-payment-firstname"><?php echo $entry_firstname; ?></label>

        <input type="text" name="firstname" value=" <?php echo $firstname; ?> "<?php echo $entry_firstname; ?>" id="input-payment-firstname" class="form-control" />

      </div>

 

Меняем <?php echo $firstname; ?> на что хотите например Г-н или Г-жа

<div class="form-group required">

        <label class="control-label" for="input-payment-firstname"><?php echo $entry_firstname; ?></label>

        <input type="text" name="firstname" value="Г-н или Г-жа" placeholder="<?php echo $entry_firstname; ?>" id="input-payment-firstname" class="form-control" />

      </div>

 

Поступаем также для остальных кроме тех где Вы хотите чтобы клиент сам писал данные не трогаете те полей.

Этап 4)- Скрываем полей страна и регион поставь коды РФ и Москвы (176 и 2761 соотвественно)

Находим в этом же файле /catalog/view/theme/default/template/checkout/guest.tpl

<div class="form-group required">

        <label class="control-label" for="input-payment-country"><?php echo $entry_country; ?></label>

        <select name="country_id" id="input-payment-country" class="form-control">

          <option value=""><?php echo $text_select; ?></option>

          <?php foreach ($countries as $country) { ?>

          <?php if ($country['country_id'] == $country_id) { ?>

          <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option>

          <?php } else { ?>

          <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option>

          <?php } ?>

          <?php } ?>

        </select>

      </div>

 

Меняем на

<div class="form-group required" style="display:none;">

        <label class="control-label" for="input-payment-country"><?php echo $entry_country; ?></label>

                  <input type="text" value="176" name="country_id" id="input-payment-country" class="form-control">

      </div>

 

Также находим для региона

<div class="form-group required">

        <label class="control-label" for="input-payment-zone"><?php echo $entry_zone; ?></label>

        <select name="zone_id" id="input-payment-zone" class="form-control">

        </select>

      </div>

 

Меняем на

<div class="form-group required" style="display:none;">

        <label class="control-label" for="input-payment-zone"><?php echo $entry_zone; ?></label>

        <input type="text" value="2761" name="zone_id" id="input-payment-zone" class="form-control">

      </div>

 

Чтобы клиент случайно не убрал галочку со слева внизу, закрываем его т.к без него выходить ошибка после шаг №5

Находим самом внизу строчки 309…315

<?php if ($shipping_required) { ?>

<div class="checkbox">

  <label>

    <?php if ($shipping_address) { ?>

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

    <?php } else { ?>

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

    <?php } ?>

    <?php echo $entry_shipping; ?></label>

</div>

 

И меняем на

<?php if ($shipping_required) { ?>

<div class="checkbox" style="display:none;">

  <label>

    <?php if ($shipping_address) { ?>

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

    <?php } else { ?>

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

    <?php } ?>

    <?php echo $entry_shipping; ?></label>

</div>

 

У себя чтобы форма было только на одной левой стороной, я просто части адрес-1 и город выделил, отрезал и поставил после часть факс а правую часть спрятал. Для этого нашел в файле где то на строке 154…160 и добавил стиль style="display:none;"

<div class="col-sm-6">

      <fieldset id="address">

      <legend><?php echo $text_your_address; ?></legend>

 

Получилось

<div class="col-sm-6" style="display:none;">

      <fieldset id="address">

      <legend><?php echo $text_your_address; ?></legend>

 

Шаг3 (shipping_required) Мне он не нужен,  поэтому я и спрятал этот шаг.

Открываем: /catalog/view/theme/default/template/checkout/checkout.tpl и находим такую секцию:

<?php } ?>

        <?php if ($shipping_required) { ?>

        <div class="panel panel-default">

          <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>

 

Добавляем style="display:none;" и получаем

<?php } ?>

        <?php if ($shipping_required) { ?>

        <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>

 

Шаг4 (shipping_method) мне он нужен так у клиента есть выбор доставка- самовывозом или курьером

 но кому он не нужен может скрыть его, в начале файла /catalog/view/theme/default/template/checkout/shipping_method.tp, добавьте следующие строчки:

<script>

 $(document).ready(function(){

 setTimeout(function(){

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

  },1000);

 });

</script>

 

 

 А дальше открываем файл /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_shipping_method; ?></h4>

          </div>

 

Добавляем style="display:none;" и получаем

<div class="panel panel-default" style="display:none;">

          <div class="panel-heading">

            <h4 class="panel-title"><?php echo $text_checkout_shipping_method; ?></h4>

          </div>

 

Шаг 5 (payment_method) Мне он не нужен,  поэтому я и спрятал этот шаг

в начале файла /catalog/view/theme/default/template/checkout/payment_method.tp, добавьте следующие строчки ( имитируем нажатие кнопки продолжения:

<script>

 $(document).ready(function(){

 setTimeout(function(){

  $('#button-payment-method').trigger('click');

  },1000);

 });

</script>

 

А дальше открываем файл /catalog/view/theme/default/template/checkout/checkout.tpl и находим такую секцию:

<?php } ?>

        <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>

 

Добавляем style="display:none;" и получаем

<?php } ?>

        <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>

 

Шаг 6 (confirm) Поскольку сам не люблю нажимать кнопки поэтому решил пропустить этот шаг тоже.

 В начале файла /catalog/view/theme/default/template/checkout/confirm.tp, добавьте следующие строчки ( имитируем нажатие кнопки продолжения:

 <script>

 $(document).ready(function(){

 setTimeout(function(){

  $('#button-confirm').trigger('click');

  },1000);

 });

</script>

 

А дальше открываем файл /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_confirm; ?></h4>

          </div>

 

Добавляем style="display:none;" и получаем

<div class="panel panel-default" style="display:none;">

          <div class="panel-heading">

            <h4 class="panel-title"><?php echo $text_checkout_confirm; ?></h4>

          </div>

 

 

Ссылка на комментарий
Поделиться на других сайтах

  • RHCk changed the title to Инструкция для упрощения форму заказа в Opercart 2

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу