Top.Mail.Ru

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

Удаляем лишние поля в заказе Ocstore 2.3
Делаем первый шаг заказ без регистрации
Переходим в файл
catalog/view/theme/default/template/checkout/login.tpl
Находим кусок кода

[php]
<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>[/php]

и меняем его на

[php]
<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>
[/php]

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

[php]<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;" />[/php]

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

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

Меняем на

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

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

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

меняем на

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

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

[php]<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>[/php]

и меняем на

[php]<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>[/php]

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

[php]<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>[/php]

Меняем на

[php]<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>[/php]

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

[php]<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>[/php]

и меняем на

[php]<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>[/php]

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

[php]<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>[/php]

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

[php]<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>[/php]

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

[php]<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]

и меняем на

[php]
<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>
[/php]

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

[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');}[/php]

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

[php]<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>[/php]

на

[php]<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>[/php]

Вариант 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]<?php echo $entry_postcode; ?>[/php]

на

[php]<!— ?php echo $entry_postcode; ? —>[/php]

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

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

на

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

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

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

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

Закрываем:

[php]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');
}[/php]

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

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

back to top