Vikas Опубликовано: января 11, 2017 Жалоба Поделиться Опубликовано: января 11, 2017 Не нашел точную инструкцию для упрощения форму заказа в 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> Теперь по умолчанию всегда будет выбрано «без регистрации». Отключаем шаг 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)- Убираем те данные которые обязательные (с *) но не нужны. Для этого надо добавить стиль спрятать и опередить какое то значения например =  чтобы 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=" " 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> Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Это популярное сообщение. Blondy Опубликовано: января 11, 2017 Это популярное сообщение. Жалоба Поделиться Опубликовано: января 11, 2017 Лучшее решение для упрощения заказа - поставить Simple. NoOne! и WarStyle 2 Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.