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

Упрощение оформления заказа (OpenCart 2.0.2.0)


OlegVladislavovich

Recommended Posts

<p>Итак, у вас OpenCart 2.0.2.0 или друга версия, но 2.x и вы решили упростить заказ.<br />

Я постараюсь разложить всё по полочкам и рассказать, как это сделал я.<br />

Мне помог в этом вопросе <strong>Romans </strong>и<strong> Ravilr</strong>, за что им большая благодарность от меня.<br />

<br />

ВНИМАНИЕ! Лично мне не нужна была регистрация покупателей, поэтому я такую возможность убрал для своего сайта, соответственно при оформлении заказа, возможности регистрации и прочего не будет<strong>!!!</strong><br />

<br />

<span style="color:#006400;"><span style="font-size:18px;"><strong>1. ПЕРВАЯ ЧАСТЬ </strong></span></span><span style="font-size:18px;">(Делаем так, чтобы при переходе в оформление заказа нас автоматически отсылало от первого пункта ко второму)<br />

<span style="font-size:14px;">

</span></span><br />

<strong>1.1. Изменяем так, чтобы автоматически был выбран пункт "Оформить заказ без регистрации"</strong></p>

<p>

</p>

<p>Первым делом заходим в файл <span style="color:#40e0d0;"><strong>catalog/view/theme/default/template/checkout/</strong></span><span style="color:#ff0000;"><strong>login.tpl</strong></span></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">Находим эти строки</span></span></p>

<div>

<pre class="_prettyXprint">

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

</div>

<p><span style="font-size:18px;"><span style="font-size:14px;">Заменяем на эти строки</span></span></p>

<pre class="_prettyXprint">

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

<p><span style="font-size:18px;"><span style="font-size:14px;">

<br />

<strong>1.2. Делаем так, чтобы автоматически нажималась кнопка продолжить в пункте "ШАГ 1"</strong></span></span></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">

<br />

Находим файл </span></span><strong><span style="color:#40e0d0;">catalog/view/theme/default/template/checkout/</span><span style="color:#ff0000;">chekout.tpl</span></strong><br />

Находим строку:</p>

<pre class="_prettyXprint">

$('a[href=\'#collapse-checkout-option\']').trigger('click');</pre>

<p>Заменяем на:</p>

<pre class="_prettyXprint">

$('#button-account').trigger('click');</pre>

<p>

</p>

<p><strong>1.3. Скрываем всё ненужное в пункте "ШАГ 1", чтобы покупатель не имел возможности случайно или специально сделать как-то по-другому</strong><br />

<span style="font-size:18px;"><span style="font-size:14px;">

</span></span></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">Находим файл </span></span><strong><span style="color:#40e0d0;">catalog/view/theme/default/template/checkout/</span><span style="color:rgb(255,0,0);">login.tpl</span></strong></p>

<p><span style="font-size:18px;"><span style="font-size:14px;">Ищем в нём:</span></span></p>

<pre class="_prettyXprint">

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

<h2><?php echo $text_returning_customer; ?></h2></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">Заменяем на:</span></span></p>

<pre class="_prettyXprint">

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

<h2><?php echo $text_returning_customer; ?></h2></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">Ищем в этом файле:</span></span></p>

<pre class="_prettyXprint _lang-">

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

<p><span style="font-size:18px;"><span style="font-size:14px;">Заменяем на:</span></span></p>

<pre class="_prettyXprint">

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

<p><span style="font-size:18px;"><span style="font-size:14px;">Находим и удаляем, либо комментируем</span></span></p>

<pre class="_prettyXprint">

<p><?php echo $text_register_account; ?></p></pre>

<p><span style="font-size:18px;"><span style="font-size:14px;">

<br />

</span></span><br />

<span style="font-size:18px;"><span style="color:#006400;"><strong>2. ВТОРАЯ ЧАСТЬ </strong></span>(Убираем выбор страны и региона в пункте"ШАГ 2")</span></p>

<p>

</p>

<p>Файл <strong><span style="color:#40e0d0;">catalog/view/theme/default/template/checkout/</span><span style="color:#ff0000;">guest.tpl</span></strong><br />

Находим:</p>

<pre class="_prettyXprint">

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

if (json['zone'] && json['zone'] != '') {

for (i = 0; i < json['zone'].length; i++) {

html += '<option value="' + json['zone']['zone_id'] + '"';

if (json['zone']['zone_id'] == '<?php echo $zone_id; ?>') {

html += ' selected="selected"';

}

html += '>' + json['zone']['name'] + '</option>';

}

} else {

html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';

}

</pre>

<p>Заменяем на:</p>

<pre class="_prettyXprint">

html = '';

if (json['zone'] && json['zone'] != '') {

for (i = 0; i < json['zone'].length; i++) {

html += '<option value="' + json['zone']['zone_id'] + '"';

if (json['zone']['zone_id'] == '<?php echo $zone_id; ?>') {

html += ' selected="selected"';

}

html += '>' + json['zone']['name'] + '</option>';

}

} else {

html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';

} </pre>

<p>Находим это:</p>

<pre class="_prettyXprint _lang-">

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

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

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

<p>Заменяем на это:</p>

<pre class="_prettyXprint _lang-">

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

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

<p>Находим это:</p>

<pre class="_prettyXprint _lang-">

<div class="form-group required">

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

</pre>

<p>Заменяем на это:</p>

<pre class="_prettyXprint">

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

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

<p>

<br />

<br />

<span style="font-size:18px;color:rgb(0,100,0);"><strong>3. ТРЕТЬЯ ЧАСТЬ </strong></span><span style="font-size:18px;">(Убираем лишние поля в пункте "ШАГ 2")</span><br />

<br />

Лично я предпочитаю оставлять для своих магазинов поля: <strong><span style="color:#ff0000;">*</span>Имя</strong>, <strong><span style="color:#ff0000;">*</span>Телефон</strong>, <strong>E-mail</strong>, <strong><span style="color:#ff0000;">*</span>Город</strong>.<br />

Все поля убираются практически так же, как было и в 1.5.x<br />

<br />

Показываю, как это делается на примере обязательного поля "Фамилия"<br />

<br />

<strong>3.1. Уберём поле "Фамилия"</strong><br />

<br />

<strong>3.1.1. Убираем сначала проверку поля "Фамилия" на ошибку</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/controller/checkout/</span><span style="color:rgb(255,0,0);">guest.php</span></strong><br />

Находим и удаляем или комментируем:</p>

<pre class="_prettyXprint">

if ((utf8_strlen(trim($this->request->post['lastname'])) < 1) || (utf8_strlen(trim($this->request->post['lastname'])) > 32)) {

$json['error']['lastname'] = $this->language->get('error_lastname');

}</pre>

<p><strong>3.1.2. Теперь можно отключать отображение "Фамилии в заполнении заказа"</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/view/theme/default/template/checkout/</span><span style="color:rgb(255,0,0);">guest.tpl</span></strong><br />

Находим:</p>

<pre class="_prettyXprint">

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

</pre>

<p>Заменяем на (либо просто дописываем <strong>style="display:none;"</strong>)</p>

<pre class="_prettyXprint _lang-">

<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="<?php echo $lastname; ?>" placeholder="<?php echo $entry_lastname; ?>" id="input-payment-lastname" class="form-control" />

</div></pre>

<p>

<br />

<strong>3.2. Сделаем необязательным поле E-mail</strong></p>

<p>

<br />

<strong>3.1.1. Убираем сначала проверку поля "E-mail" на ошибку</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/controller/checkout/</span><span style="color:rgb(255,0,0);">guest.php</span></strong><br />

Находим и удаляем или комментируем:</p>

<pre class="_prettyXprint _lang-">

if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match('/^[^\@]+@.*.[a-z]{2,15}$/i', $this->request->post['email'])) {

$json['error']['email'] = $this->language->get('error_email');

}</pre>

<p><strong>3.1.2. Теперь убираем звёздочку перед пунктом "E-mail"</strong><br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/view/theme/default/template/checkout/</span><span style="color:rgb(255,0,0);">guest.tpl</span></strong><br />

Находим:</p>

<pre class="_prettyXprint _lang-">

<div class="form-group required">

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

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

</div></pre>

<p>Заменяем на (либо просто удаляем <strong>required</strong>):</p>

<pre class="_prettyXprint _lang-">

<div class="form-group">

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

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

</div></pre>

<p>

<br />

<br />

<span style="font-size:18px;color:rgb(0,100,0);"><strong>4. ЧЕТВЕРТАЯ ЧАСТЬ </strong></span><span style="font-size:18px;">(Убираем "ШАГ 3" и "ШАГ 4")</span><br />

<br />

<strong>4.1. Убираем эти Шаги</strong><br />

<br />

Файл <strong><span style="color:rgb(64,224,208);">system/library/</span><span style="color:rgb(255,0,0);">cart.php</span></strong><br />

Находим:</p>

<pre class="_prettyXprint _lang-">

public function hasShipping() {

</pre>

<p>После неё вставляем:</p>

<pre class="_prettyXprint _lang-">

return false; </pre>

<p>

<br />

<b>Далее необходимо изменить надписи "ШАГ 1", "ШАГ 2" и т.д., об этом написано в "ПЯТОЙ ЧАСТИ"</b><br />

<br />

<br />

<span style="font-size:18px;color:rgb(0,100,0);"><strong>5. ПЯТАЯ ЧАСТЬ </strong></span><span style="font-size:18px;">(Изменяем надписи "ШАГ 1", "ШАГ 2" и т.д.)</span><br />

<br />

Файл <strong><span style="color:rgb(64,224,208);">catalog/language/russian/checkout/</span><span style="color:rgb(255,0,0);">checkout.php</span></strong><br />

Находим и правим на свой вкус:</p>

<pre class="_prettyXprint">

$_['text_checkout_option'] = 'Шаг 1: Способ оформления заказа';

$_['text_checkout_account'] = 'Шаг 2: Профиль &amp; Платежная информация';

$_['text_checkout_payment_address'] = 'Шаг 2: Платежная информация';

$_['text_checkout_shipping_address'] = 'Шаг 3: Адрес доставки';

$_['text_checkout_shipping_method'] = 'Шаг 4: Способ доставки';

$_['text_checkout_payment_method'] = 'Шаг 5: Способ оплаты';

$_['text_checkout_confirm'] = 'Шаг 6: Подтверждение заказа';

</pre>

<p>У меня получилось следующим образом:</p>

<pre class="_prettyXprint">

$_['text_checkout_option'] = 'Шаг 1: Оформить заказ без регистрации (выбрали это за Вас)';

$_['text_checkout_payment_address'] = 'Шаг 2: Информация';

$_['text_checkout_payment_method'] = 'Шаг 3: Способ оплаты';

$_['text_checkout_confirm'] = 'Шаг 4: Подтверждение заказа';

</pre>

<p>

<br />

 </p>

<p>Статья в будущем скорее всего будет дополняться или редактироваться. Искренне надеюсь, что у вас всё по ней получится! Успехов!</p>

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


не надо бездумно копипастить из других источников.

<pre class="_prettyXprint">
...
<pre class="_prettyXprint _lang-">
редактируй полностью.

по другому никак.

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

  • 2 weeks later...

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

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

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

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

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

Вхід

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

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

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

Important Information

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