Top.Mail.Ru

Поля в заказе Ocstore 2.3

Удаляем лишние поля в заказе Ocstore 2.3
Делаем первый шаг заказ без регистрации
Переходим в файл
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>

Далее покупатель после кнопки «Оформить заказ» переходит к вводу персональных данных. Для этого вставляем в начало файла
catalog/view/theme/default/template/checkout/login.tpl небольшой скрипт

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3E%0A%24(document).ready(function()%7B%0AsetTimeout(function()%7B%0A%24('%23button-account').trigger('click')%3B%0A%7D%2C400)%3B%0A%7D)%3B%0A%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />

Далее делаем чтобы покупатель переходил сразу к вводу данных. Открываем файл
/catalog/view/theme/default/template/checkout/checkout.tpl
Находим строки 22-24

<h1><?php echo $heading_title; ?></h1>
      <div class="panel-group" id="accordion">
        <div class="panel panel-default">

Меняем на

  <h1><?php echo $heading_title; ?></h1>
    <div class="panel-group" id="accordion">
      <div class="panel panel-default" style="display:none;">

Далее для соответствия нумерации шагов правим файл
/catalog/language/ru-ru/checkout/checkout.php
в 9 строке

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

меняем на

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

Убираем лишние поля при оформлении заказа
Открываем файл: /catalog/view/theme/default/template/checkout/guest.tpl. С помощью css скрываем поля ввода и вручную ставим параметр value, что бы при клике на «продолжить» ocstore не ругался на незаполненные поля.
На примере фамилии убираем поля факс, компания, индекс и т.д.
Находим

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

Далее редактируем поля страны и региона.
Находим

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

Где 176 Российская Федерация.
В коде региона находим

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

где 2761 Московский регион
Меняем местами город и адрес
Находим и вырезаем код

<div class="form-group required">
<label class="control-label" for="input-payment-city"><?php echo $entry_city; ?></label>
<input type="text" name="city" value="<?php echo $city; ?>" placeholder="<?php echo $entry_city; ?>" id="input-payment-city" class="form-control" />
</div>

вставляем его пред этим куском кода

<div class="form-group required">
<label class="control-label" for="input-payment-address-1"><?php echo $entry_address_1; ?></label>
<input type="text" name="address_1" value="<?php echo $address_1; ?>" placeholder="<?php echo $entry_address_1; ?>" id="input-payment-address-1" class="form-control" />
</div>

Скрываем галочку — «Мой адрес доставки совпадает с платежным».
В этом же файле находим код

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

и меняем на

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

Если необходимо скрываем поле e-mail
В файле \catalog\controller\checkout\guest.php удаляем кусок кода:

if ((utf8_strlen($this->request->post['email']) > 96) || !filter_var($this->request->post['email'], FILTER_VALIDATE_EMAIL)) {
$json['error']['email'] = $this->language->get('error_email');}

И в файле /catalog/view/theme/default/template/checkout/guest.tpl меняем

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

на

<div class="form-group required" style="display:none;">
<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>

Вариант 2 (не проверен)
Правим файлы и контроллеры
1. Файлы
/catalog/view/theme/default/template/account/register.tpl /catalog/view/theme/default/template/checkout/register.tpl
​​​​​​​/catalog/view/theme/default/template/checkout/guest.tpl
Ненужные пункты убираем путем комментирования переменной, например меняем

<?php echo $entry_postcode; ?>

на

<!-- ?php echo $entry_postcode; ? -->

Далее там же комментируем инпут и блоки, меняем

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

на

<!--input type="text" name="postcode" value="<?php echo $postcode; ?>" placeholder="<?php echo $entry_postcode; ?>" id="input-payment-postcode" class="form-control" -->

Добавляем style=»display:none;» в tr или div, и убираем ненужные переносы, что бы отображаемые блоки не распадались по высоте.

2. Контроллеры
/catalog/controller/account/register.php
/catalog/controller/checkout/register.php
​​​​​​​/catalog/controller/checkout/guest.php
Находим правило проверки:

if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) {
  $this->error['lastname'] = $this->language->get('error_lastname');
}

Закрываем:

if ((utf8_strlen($this-&gt;request-&gt;post['lastname']) &lt; 1) || (utf8_strlen($this-&gt;request-&gt;post['lastname']) &gt; 32)) {
  //$this-&gt;error['lastname'] = $this-&gt;language-&gt;get('error_lastname');
}

Тоже самое делаем для полей которые надо закрыть.

Вас может заинтересовать

back to top