Opencart — Убираем Лишние Страны И Устанавливаем По Умолчанию Определенную Страну

Тема в разделе "Установка, обновление, настройка", создана пользователем admin, 16 июн 2016.

  1. TopicStarter Overlay
    Offline

    admin Команда форума Администратор

    Сообщения:
    2.321
    Симпатии:
    76.842
    Репутация:
    170
    Как нам известно, оформление заказа в OpenCart слишком длинное: масса полей, которые практически каждому хочется отключить, удалить или скрыть. Процесс регистрации и оформления заказа получается утомительным, что вполне вероятно, может негативно сказаться на магазине. И одним из немаловажных моментов является выбор страны и города: выпадающий список с перечнем стран чересчур длинный и зачастую никому не нужный, так как большая часть магазинов работает либо по городу, области, стране или максимум по паре-тройке соседних стран, так что в том же Алжире или Пакистане абсолютно нет надобности.

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

    Для этого отправляемся в файлы темы (шаблона) своего магазина и открываем следующие файлы:

    catalog/view/theme/default/template/checkout/guest.tpl — для оформления заказа без регистрации

    catalog/view/theme/default/template/checkout/register.tpl — для оформления заказа с прохождением регистрации

    и ищем одну и ту же строку в обоих файлах:

    Код:
    <?phpif($country['country_id']==$country_id){?>
    Поскольку каждая страна имеет свой числовой идентификатор(id), то нам необходимо указать именно тот id, который присвоен нужной нам стране. ID вышеупомянутых стран и пары соседних:

    Украина — 220, Россия — 176, Беларусь — 20, Молдова — 140. Более подробно об идентификаторах различных стран смотрим в файле system\cache\cache.country.status… (для начала потестируйте процесс регистрации и выберите те страны, которые Вам необходимо использовать для регистрации).

    И меняем найденный нами код на следующий:

    Код:
    <?phpif($country['country_id']==220){?>
    и теперь по умолчанию будет первой появляться Украина, так как подставлен именно ее id.

    Если же нам необходимо, чтобы и в поле Регион/Область отображался определенный город, то в этих же файлах находим код:

    Код:
    if(json['zone'][i]['zone_id']=='<?phpecho$zone_id;?>'){
    html+=' selected="selected"';
    }
    и меняем его на код с идентификатором города Киева:

    Код:
    if(json['zone'][i]['zone_id']==3491){
    html+=' selected="selected"';
    }
    Опять таки. если нам необходимо узнать id другого города, то снова заглядываем в кэш: system\cache\cache.zone…

    И теперь новый покупатель во время оформления заказа сразу видит вот такую картину:
    strana-i-region-po-umolchaniju.jpg

    Что же, что касается вывода определенных стран или городов/регионов по умолчанию, то теперь мы знаем как это делать. Ну, а как же все же убрать список стран и оставить только те, которые нам нужны?

    Существует два способа, которыми можно это осуществить:

    1. Через админ-панель магазина.

    Идем по вкладкам Система/Локализация/Регионы и удаляем ненужные регионы.

    spisok-regionov-adminka.jpg



    Затем идем Система/Локализация/Страны и удаляем ненужные страны, не забывая оставить те, которые нужны.

    spisok-stran-adminka.jpg

    Удаление регионов и стран необходимо начинать именно с удаления регионов, так как они привязаны к странам и движок просто не даст удалить ту страну, которой принадлежат регионы или города.

    2. Удаляем ненужные страны и регионы через phpmyadmin.

    Если предыдущий способ позволял удалить ненужные страны из административной части самого магазина, то данный способ осуществим лишь из, так сказать, технической части магазина — phpmyadmin. И нет никакой разницы в том где находится ваш магазин, и на сервере в интернете (хостинг) и на локальном хостинге процесс один и тот же.

    Итак, попав в phpmyadmin, слева выбираем ту базу данных, которая содержит таблицы магазина.

    vybor-bazy-dannyh1.jpg

    Для начала разберемся с странами. Для этого находим таблицу «Country» и видим список стран, который растягивается на 8 страниц. Для удобства можно увеличить количество выводимых стран на одной странице, изменив 30 на любое другое гораздо большее число.



    tablica-country.jpg



    Вот мы получили весь список стран на одной странице и можем удалить все страны просто в самом низу, под перечнем всех стран, нажать на «Отметить все» и затем удалить. НО при этом не забываем, после того как отметим все страны, вернуться к списку и снять отметки с нужных нам стран. Для того, чтобы знать, где искать Украину, Россию или любую другую страну, предварительно узнаем ее id. В таблице идентификаторы стран расположены в порядке возрастания.

    otmetit-udalit-strany.jpg



    Теперь перейдем к редактированию регионов. В списке таблиц выбираем таблицу «Zone» (внизу списка) и получаем перечень регионов. Опять таки можно увеличить количество выводимых регионов на одной странице, изменив 30 на любое другое число (к примеру, указав 500, получим 8 страниц, а указав 1000, — всего 4 страницы и т.д. Но чем больше цифра, тем дольше может обрабатываться запрос.)

    tablica-zone-kolichestvo-strok.jpg

    В самом конце (под всеми 500 или 1000 выводимыми регионами), как и в странах, находим «Отметить все», нажимаем и тем самым отмечаем все регионы, и жмем «Удалить».

    otmetit-udalit.jpg

    Вот таким способом мы удалили 500 первых ненужных регионов. Остальные удаляем аналогичным образом, главное не забываем о том, что необходимо оставить нужные для нас регионы. К примеру, нам необходимо оставить в наших регионах Киев ( 3491 ), то мы обязательно снять с него отметку. Найти нужный регион или город не составит труда, так как идентификаторы в таблице идут в порядке возрастания. Как мы ранее узнали, идентификаторы регионов и стран находим в кэше.

    И в итоге получим желаемый результат: список стран и регионов, в оформлении заказа, будет ограничиваться тем списком, который мы установим сами.