Задача. На WordPress-сайте с Woocommerce страница Оформления заказа, в деталях заказа есть выпадающий список «Укажите Ваш город:», но по стандарту в плагине не предусмотрены города из России, Украины и т.д. Есть задача добавить в этот список города или области которые нужны нам, чтобы пользователь (покупатель) мог выбрать куда доставлять товар.
Решение. Чтобы добавить нужные города и области России (или другой страны) в зоны доставки WooCommerce можно использовать следующий php-код со вставкой в function.php
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
// Добавление городов и регионов доставки по РФ
add_filter( ‘woocommerce_states’, ‘woocommerce_states_ru’ );
function woocommerce_states_ru( $states ) {
$states[‘RU’] = array(
‘MSK’ => ‘Москва’,
‘SPB’ => ‘Санкт-Петербург’,
‘NOV’ => ‘Новосибирск’,
‘EKB’ => ‘Екатеринбург’,
‘NN’ => ‘Нижний Новгород’,
‘KZN’ => ‘Казань’,
‘MGNG’ => ‘Магнитогорск’,
‘NTG’ => ‘Нижний Тагил’,
‘CHL’ => ‘Челябинск’,
‘ORNB’ => ‘Оренбург’,
‘ORSK’ => ‘Орск’,
‘OMSK’ => ‘Омск’,
‘SMR’ => ‘Самара’,
‘RND’ => ‘Ростов-на-Дону’,
‘STRMK’ => ‘Стерлитамак’,
‘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;
}
|
Можно убрать ненужные или добавить по аналогии другие грода.
Код взят с источника woohelp.ru.
Не обновляется блок доставки в заказе при выборе города
Задача. Не обновляется блок доставки в заказе при выборе из списка Зоны доставки.
Решение. Проблема устраняется при добавлении класса «update_totals_on_change» в поле Class в настройках выводимого поля. Например, выводимое поле «Укажите Ваш город:». Данные поля можно редактировать с помощью плагина «Checkout Field Editor for WooCommerce».