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