Всё о web

Для чайников и не только


Opencart — убрать страну в оформлении заказа

Июль 15, 2015

Вариант первый: Вам нужно совсем убрать выбор страны и региона из оформления заказа. Для этого открываем шаблон гостевого заказа: /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>

Эти же операции нужно проделать для шаблона регистрации пользователя: /catalog/view/theme/default/template/account/register.tpl

Вариант второй: Вам нужно убрать какую-либо страну из выпадающего списка. Для этого нужно открыть базу данных, например, через phpmyadmin, найти таблицу oc_country. В этой таблице содержится список всех стран. Удалите из этой таблицы все ненужные страны и они не будут содержаться в элементе выбора страны. Важно: после того как страны удалены, обязательно нужно очистить папку с кэшем /system/cache/

Вариант третий: в списке выбора страны нужно оставить только несколько нужных стран.

Для этого придётся либо удалить все ненужные страны из таблицы oc_country, либо вручную переписать их в инпут выбора страны. Например, чтобы оставить только Россию и Украину, нужно заменить:

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

На:

        <select name="country_id" id="input-payment-country" class="form-control">
          <option value="176">Россия</option>
          <option value="220">Украина</option>
        </select>

где country_id подсмотрен из таблицы oc_country.



Комментарии

9 комментариев | “Opencart — убрать страну в оформлении заказа

  1. Пр! все круто! все отлично просто! есть вопросик. хочу в админке оставить цены в баксах (такая закупка) а клиент по умолчанию видел в рублях. А то оно как— ставишьт по умолчанию в баксах. ценник выскакивает в баксах. Я так понимаю надо где-то …э не знаю в каком файле поставить значение после загрузки файла. что бы пускай через 1 сек автоматом переключалось валюта на рубли. Тогда наверное цены в админке станется в баксе а клиент автоматом будет видеть в рублях. курс то обновляется постоянно.

    1. Илья Илья:

      По идее опенкарт «изкоробки» должен уметь пересчитывать цены, но могу ошибаться, ни разу подобную задачу не делал.

  2. Аватар Марк:

    Статья работоспособна ровно на половину.
    «Эти же операции нужно проделать для шаблона регистрации пользователя: /catalog/view/theme/default/template/account/register.tpl»
    Не получилось сделать, тк участков кода приведенных автором, которые нужно заменить в файле register.tpl — нет.

    1. Илья Илья:

      А какой смысл копипасть тот же код? На сколько помню, там всё то же самое.

  3. Аватар Константин:

    Добрый день, а остальные поля убрать? Факс, Индекс, Компания?? подскажите пожалуйста, за статью спасибо.

    1. Илья Илья:

      Остальные поля можно убрать так же, просто заменив их на скрытые инпуты, вот тут есть похожая инфа: https://allwebstuff.info/%d0%b1%d1%8b%d1%81%d1%82%d1%80%d1%8b%d0%b9-%d0%b7%d0%b0%d0%ba%d0%b0%d0%b7-opencart-2/

  4. Народ проблемка, скачал архив все стало отлично , только выскакивает неприятная надпись в заказе Notice: Undefined variable: captcha in /home/maximb00/ikc.in.ua/www/catalog/view/theme/theme574/template/checkout/guest.tpl on line 296

  5. Илья Илья:

    Опенкарт не стоит на месте, возможно шаблон изменился. Прошло больше 2х лет уже …

  6. Аватар Антон:

    Первый метод для версии 2,1* не пашет, в топку

Оставить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *