Как убрать проверку в Опенкарт (версия 1.5.3.1) области и страны, сделать эти поля не обязательными, а главное чтобы при редактировании заказа из админки эти поля не проверялись?
catalog/controller/checkout/guest.php (для гостевого заказа) заменить: Код: if (isset($this->session->data['guest']['payment']['country_id'])) { $this->data['country_id'] = $this->session->data['guest']['payment']['country_id']; } elseif (isset($this->session->data['shipping_country_id'])) { $this->data['country_id'] = $this->session->data['shipping_country_id']; } else { $this->data['country_id'] = $this->config->get('config_country_id'); } if (isset($this->session->data['guest']['payment']['zone_id'])) { $this->data['zone_id'] = $this->session->data['guest']['payment']['zone_id']; } elseif (isset($this->session->data['shipping_zone_id'])) { $this->data['zone_id'] = $this->session->data['shipping_zone_id']; } else { $this->data['zone_id'] = ''; } на: Код: $this->data['country_id'] = $this->config->get('config_country_id'); $this->data['zone_id'] = $this->config->get('config_zone_id'); это: Код: if ($this->request->post['country_id'] == '') { $json['error']['country'] = $this->language->get('error_country'); } if ($this->request->post['zone_id'] == '') { $json['error']['zone'] = $this->language->get('error_zone'); } привести к виду: Код: /* if ($this->request->post['country_id'] == '') { $json['error']['country'] = $this->language->get('error_country'); } if ($this->request->post['zone_id'] == '') { $json['error']['zone'] = $this->language->get('error_zone'); } */ Чтобы сделать необязательными этого достаточно. Чтобы убрать совсем делаем дальше. catalog/view/theme/ТЕМА/template/checkout/guest.tpl это: Код: <span class="required">*</span> <?php echo $entry_country; ?><br /> <select name="country_id" class="large-field"> <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> <br /> <br /> <span class="required">*</span> <?php echo $entry_zone; ?><br /> <select name="zone_id" class="large-field"> </select> <br /> <br /> привести к виду: Код: <div style="display: none"> <span class="required">*</span> <?php echo $entry_country; ?><br /> <select name="country_id" class="large-field"> <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> <br /> <br /> <span class="required">*</span> <?php echo $entry_zone; ?><br /> <select name="zone_id" class="large-field"> </select> <br /> <br /> </div> В итоге в заказах будет устанавливаться страна и регион из настроек магазина. Либо можно создать в странах и регионах по одному новому пункту "Не указано" и вписать их id вместо: $this->config->get('config_country_id') и $this->config->get('config_zone_id')
Версия 1.5.3.1 не помогло...все равно пишет Внимательно проверьте форму и исправьте ошибки! и просит указать область и страну! (дополню что покупатель при заказе просто не видит это поле, посему оно не заполнено) Разобрался, изменения в заказе сохраняются...просто выскакивает предупреждающее сообщение, это и насторожило =) Я так понимаю чтобы проверки города не было нежно так изменить Но...возникла следующая проблема при изменении не могу выбрать способ оплаты и доставки, а без этого сохранится никак
У меня ошибок нигде не выдаёт, только при "Update Totals", но с этим не хочу возиться, проще как я написал в первом посте, присвоить значение по умолчанию и все и не надо никакие проверки вырезать.
Но дело в том что эти значения по умолчанию будут отправятся в письме покупателю...это значит тогда надо и с письма вырезать
Да, именно так, но вырезать два поля из письма гораздо проще, чем вырезать учёт этих полей по всей системе заказа.
а может что-то из этого в пользу будет? http://moushe.ru/nashi-stati/web-dizajn-2/opencart-izmenyaem-registraciyu-1-chast/#comments