Как добавить города и области России в зоны доставки

  Автор:
  2836
Как добавить города и области России в зоны доставки

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

Такой, например, доработкой будет внесение списка городов и областей для создания зон доставки.

По умолчанию в Woocommerce можно создать зону доставки «Россия»,

 

но Россия очень большая и стоимость доставки будет значительно отличатся, скажем в Москву и Владивосток.

Чтобы более точно указывать назначение доставки можно воспользоваться индексами. Но здесь есть 2 проблемы:

1. не каждый покупатель точно знает свой индекс.

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

В общем есть более простое решение. Внести список городов и областей в Woocommerce, как у них сделано для США по умолчанию.

Сделать это просто! В файл шаблона functions.php вставить следующий код:


add_filter( 'woocommerce_states', 'new_rus_woocommerce_states' );
function new_rus_woocommerce_states( $states ) {
$states['RU'] = array(
'MSK' => 'Москва',
'SPB' => 'Санкт-Петербург',
'NOV' => 'Новосибирск',
'EKB' => 'Екатеринбург',
'NN' => 'Нижний Новгород',
'KZN' => 'Казань',
'CHL' => 'Челябинск',
'OMSK' => 'Омск',
'SMR' => 'Самара',
'RND' => 'Ростов-на-Дону',
'UFA' => 'Уфа',
'PRM' => 'Пермь',
'KRN' => 'Красноярск',
'VRZH' => 'Воронеж',
'VLG' => 'Волгоград',
'SIMF' => 'Симферополь',
'ABAO' => 'Агинский Бурятский авт.окр.',
'AR' => 'Адыгея Республика',
'ALR' => 'Алтай Республика',
'AK' => 'Алтайский край',
'AMO' => 'Амурская область',
'ARO' => 'Архангельская область',
'ACO' => 'Астраханская область',
'BR' => 'Башкортостан республика',
'BEO' => 'Белгородская область',
'BRO' => 'Брянская область',
'BUR' => 'Бурятия республика',
'VLO' => 'Владимирская область',
'VOO' => 'Волгоградская область',
'VOLGO' => 'Вологодская область',
'VORO' => 'Воронежская область',
'DR' => 'Дагестан республика',
'EVRAO' => 'Еврейская авт. область',
'IO' => 'Ивановская область',
'IR' => 'Ингушетия республика',
'IRO' => 'Иркутская область',
'KBR' => 'Кабардино-Балкарская республика',
'KNO' => 'Калининградская область',
'KMR' => 'Калмыкия республика',
'KLO' => 'Калужская область',
'KMO' => 'Камчатская область',
'KCHR' => 'Карачаево-Черкесская республика',
'KR' => 'Карелия республика',
'KEMO' => 'Кемеровская область',
'KIRO' => 'Кировская область',
'KOMI' => 'Коми республика',
'KPAO' => 'Коми-Пермяцкий авт. окр.',
'KRAO' => 'Корякский авт.окр.',
'KOSO' => 'Костромская область',
'KRSO' => 'Краснодарский край',
'KRNO' => 'Красноярский край',
'KRYM' => 'Крым Республика',
'KURGO' => 'Курганская область',
'KURO' => 'Курская область',
'LENO' => 'Ленинградская область',
'LPO' => 'Липецкая область',
'MAGO' => 'Магаданская область',
'MER' => 'Марий Эл республика',
'MOR' => 'Мордовия республика',
'MSKO' => 'Московская область',
'MURO' => 'Мурманская область',
'NAO' => 'Ненецкий авт.окр.',
'NZHO' => 'Нижегородская область',
'NVGO' => 'Новгородская область',
'NVO' => 'Новосибирская область',
'OMO' => 'Омская область',
'OPENO' => 'Оренбургская область',
'OPLO' => 'Орловская область',
'PENO' => 'Пензенская область',
'PERO' => 'Пермский край',
'PRO' => 'Приморский край',
'PSO' => 'Псковская область',
'RSO' => 'Ростовская область',
'RZO' => 'Рязанская область',
'SMRO' => 'Самарская область',
'SRP' => 'Саратовская область',
'SYAR' => 'Саха(Якутия) республика',
'SKHO' => 'Сахалинская область',
'SVO' => 'Свердловская область',
'SOAR' => 'Северная Осетия - Алания республика',
'SMO' => 'Смоленская область',
'STK' => 'Ставропольский край',
'TRAO' => 'Таймырский (Долгано-Ненецкий) авт. окр.',
'TMBO' => 'Тамбовская область',
'TTR' => 'Татарстан республика',
'TVO' => 'Тверская область',
'TMO' => 'Томская область',
'TVR' => 'Тыва республика',
'TULO' => 'Тульская область',
'TUMO' => 'Тюменская область',
'UDO' => 'Удмуртская республика',
'ULO' => 'Ульяновская область',
'UOBAO' => 'Усть-Ордынский Бурятский авт.окр.',
'KHBK' => 'Хабаровский край',
'KHKR' => 'Хакасия республика',
'KHMAO' => 'Ханты-Мансийский авт.окр.',
'CHLO' => 'Челябинская область',
'CHCHR' => 'Чеченская республика',
'CHTO' => 'Читинская область',
'CHVR' => 'Чувашская республика',
'CHKAO' => 'Чукотский авт.окр.',
'EVAO' => 'Эвенкийский авт.окр.',
'YANO' => 'Ямало-Ненецкий авт.окр.',
'YAO' => 'Ярославская область'

);

return $states;
}

В этом списке указаны все области, округа, и республики, а также в начале указаны несколько городов миллионников. Вы можете сами сформировать такой список, добавить еще города, или даже деревни. Главное, указывайте оригинальный код города (заглавные буквы, латиницей). Например: ‘YAO’ => ‘Ярославская область’ . YAO — это код Ярославской области. Вы его придумываете сами. Главное, чтобы эти коды в списке не повторялись.

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

Как добавить города и области России в зоны доставки

   1 голос
Средняя оценка: 5 из 5
Вы находите данную статью полезной или интересной? Поделитесь ею, пожалуйста, с другими - просто нажмите на кнопки ниже:
Самые Важные Оповещения Блога + Четкий Комплект Ценных Подарков ДЛЯ БЛОГЕРОВ И ФРИЛАНСЕРОВ
Оставьте свой комментарий:
4 комментария
  1. Анфиса как всегда с заботой о партнерах развивает новое не только сама, но и нас мотивирует к развитию

  2. Спасибо большое, всё получилось! А то прям засада какая то была…)))

  3. У Вас не указана закрывающая скобка в конце кода
    }
    А за код спасибо, помог.
    Могу посоветовать прописывать код в отдельном плагине. Чтобы при обновлении все не слетало, инфа тут https://github.com/woocommerce/theme-customisations
    Всем успехов в сайтостроении.

на Блоге
в Фейсбук
в Вконтакте