Задача. На 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».