Скромный блог о различном опыте дилетанта

Как реализовать районы и зоны доставки в woocommerce

Так уж получилось что последние мои статьи были посвящены работе с системой woocommerce и эта также не станет исключением. Дело в том что пока я работал над последним заказом, в работе возникло довольно много интересных нюансов, которые я сразу отметил, зафиксировал и вот теперь решил поделиться “приключениями” в своем блоге. Речь пойдет об одной очень важной теме – зоны доставки в woocommerce.

Система woocommerce в основном используется для создания интернет-магазинов, но мне нужно было реализовать сайт по доставке еды в пределах одного города. Т.е. во множестве процессов особых отличий между магазином и доставкой еды нет, но лишь до тех пор, пока речь не заходит о зонах доставки. И передо мной встала задача: реализовать подсчет стоимости за доставку в зависимости от того где находится клиент, в пределах города, либо в отдаленных районах.

Например в моем случае были 4 зоны доставки, с определенными условиями стоимости:

В пределах города

  • Если сумма заказа превышает 2000 тенге, то доставка бесплатная.
  • Если меньше то стоимость доставки 150 тг.

1 группа отдаленных районов

  • Минимальная сумма заказа 2000 тенге, стоимость доставки – 300 тг.
  • Бесплатная доставка от 3000 тг

2 группа отдаленных районов

  • Минимальная сумма заказа 3000 тенге, стоимость доставки – 400 тг.
  • Бесплатная доставка от 4000 тг

3 группа отдаленных районов

  • Минимальная сумма заказа 4000 тенге, стоимость доставки – 500 тг.
  • Бесплатная доставка от 5000 тг

Вот такие вот вроде незамысловатые нюансы, однако на деле реализовать их оказалось не так просто как казалось на первый взгляд. В некоторых местах даже пришлось слегка извратиться и применить некоторые вещи не по назначению, чтобы выкрутиться. Далее подробнее опишу все шаги, которые я предпринял чтобы выполнить эту задачу.

Шаги реализации зоны доставки в woocommerce по районам

Вся суть данного способа заключается в том, что за основу зон в woocommerce берутся страны. И поэтому нам нужно снести все эти страны, раз мы будем работать в пределах одного города и банально заменить их на группы районов. Для этого нам нужно сначала добавить в functions.php нашей темы следующий код:

function woo_remove_specific_country( $country ) 
{
unset($country["AF"]); unset($country["AX"]); unset($country["AL"]); unset($country["DZ"]); unset($country["AS"]);
unset($country["AD"]); unset($country["AO"]); unset($country["AI"]); unset($country["AQ"]); unset($country["AG"]);
unset($country["AR"]); unset($country["AM"]); unset($country["AW"]); unset($country["AU"]); unset($country["AT"]);
unset($country["AZ"]); unset($country["BS"]); unset($country["BH"]); unset($country["BD"]); unset($country["BB"]);
unset($country["BY"]); unset($country["BE"]); unset($country["PW"]); unset($country["BZ"]); unset($country["BJ"]);
unset($country["BM"]); unset($country["BT"]); unset($country["BO"]); unset($country["BQ"]); unset($country["BA"]);
unset($country["BW"]); unset($country["BV"]); unset($country["BR"]); unset($country["IO"]); unset($country["VG"]);
unset($country["BN"]); unset($country["BG"]); unset($country["BF"]); unset($country["BI"]); unset($country["KH"]);
unset($country["CM"]); unset($country["CA"]); unset($country["CV"]); unset($country["KY"]); unset($country["CF"]);
unset($country["TD"]); unset($country["CL"]); unset($country["CN"]); unset($country["CX"]); unset($country["CC"]);
unset($country["CO"]); unset($country["KM"]); unset($country["CG"]); unset($country["CD"]); unset($country["CK"]);
unset($country["CR"]); unset($country["HR"]); unset($country["CU"]); unset($country["CW"]); unset($country["CY"]);
unset($country["CZ"]); unset($country["DK"]); unset($country["DJ"]); unset($country["DM"]); unset($country["DO"]);
unset($country["EC"]); unset($country["CZ"]); unset($country["EG"]); unset($country["SV"]); unset($country["GQ"]); 
unset($country["ER"]); unset($country["EE"]); unset($country["ET"]); unset($country["FK"]); unset($country["FO"]);
unset($country["FJ"]); unset($country["FI"]); unset($country["FR"]); unset($country["GF"]); unset($country["PF"]);
unset($country["TF"]); unset($country["GA"]); unset($country["GM"]); unset($country["GE"]); unset($country["DE"]);
unset($country["GH"]); unset($country["GI"]); unset($country["GR"]); unset($country["GL"]); unset($country["GD"]);
unset($country["GP"]); unset($country["GU"]); unset($country["GT"]); unset($country["GG"]); unset($country["GN"]);
unset($country["GW"]); unset($country["GY"]); unset($country["HT"]); unset($country["HM"]); unset($country["HN"]);
unset($country["HK"]); unset($country["HU"]); unset($country["IS"]); unset($country["IN"]); unset($country["ID"]);
unset($country["IR"]); unset($country["IQ"]); unset($country["IE"]); unset($country["IM"]); unset($country["IL"]);
unset($country["IT"]); unset($country["CI"]); unset($country["JM"]); unset($country["JP"]); unset($country["JE"]);
unset($country["JO"]); unset($country["KZ"]); unset($country["KE"]); unset($country["KI"]); unset($country["KW"]);
unset($country["KG"]); unset($country["LA"]); unset($country["LV"]); unset($country["LB"]); unset($country["LS"]);
unset($country["LR"]); unset($country["LY"]); unset($country["LI"]); unset($country["LT"]); unset($country["LU"]);
unset($country["MO"]); unset($country["MK"]); unset($country["MG"]); unset($country["MW"]); unset($country["MY"]);
unset($country["MV"]); unset($country["ML"]); unset($country["MT"]); unset($country["MH"]); unset($country["MQ"]);
unset($country["MR"]); unset($country["MU"]); unset($country["YT"]); unset($country["MX"]); unset($country["FM"]);
unset($country["MD"]); unset($country["MC"]); unset($country["MN"]); unset($country["ME"]); unset($country["MS"]);
unset($country["MA"]); unset($country["MZ"]); unset($country["MM"]); unset($country["NA"]); unset($country["NR"]);
unset($country["NP"]); unset($country["NL"]); unset($country["NC"]); unset($country["NZ"]); unset($country["NI"]);
unset($country["NE"]); unset($country["NG"]); unset($country["NU"]); unset($country["NF"]); unset($country["MP"]);
unset($country["KP"]); unset($country["NO"]); unset($country["OM"]); unset($country["PK"]); unset($country["PS"]);
unset($country["PA"]); unset($country["PG"]); unset($country["PY"]); unset($country["PE"]); unset($country["PH"]);
unset($country["PN"]); unset($country["PL"]); unset($country["PT"]); unset($country["PR"]); unset($country["QA"]);
unset($country["RE"]); unset($country["RO"]); unset($country["RU"]); unset($country["RW"]); unset($country["BL"]);
unset($country["SH"]); unset($country["IL"]); unset($country["KN"]); unset($country["LC"]); unset($country["MF"]);
unset($country["SX"]); unset($country["PM"]); unset($country["VC"]); unset($country["SM"]); unset($country["ST"]);
unset($country["SA"]); unset($country["SN"]); unset($country["RS"]); unset($country["SC"]); unset($country["SL"]);
unset($country["SG"]); unset($country["SK"]); unset($country["SI"]); unset($country["SB"]); unset($country["SO"]);
unset($country["ZA"]); unset($country["GS"]); unset($country["KR"]); unset($country["SS"]); unset($country["ES"]);
unset($country["LK"]); unset($country["SD"]); unset($country["SR"]); unset($country["SJ"]); unset($country["SZ"]);
unset($country["SE"]); unset($country["CH"]); unset($country["SY"]); unset($country["TW"]); unset($country["TJ"]);
unset($country["TZ"]); unset($country["TH"]); unset($country["TL"]); unset($country["TG"]); unset($country["TK"]);
unset($country["TO"]); unset($country["TT"]); unset($country["TN"]); unset($country["TR"]); unset($country["TM"]);
unset($country["TC"]); unset($country["TV"]); unset($country["UG"]); unset($country["UA"]); unset($country["AE"]);
unset($country["GB"]); unset($country["US"]); unset($country["UM"]); unset($country["VI"]); unset($country["UY"]);
unset($country["UZ"]); unset($country["VU"]); unset($country["VA"]); unset($country["VE"]); unset($country["VN"]);
unset($country["WF"]); unset($country["EH"]); unset($country["WS"]); unset($country["YE"]); unset($country["ZM"]);
unset($country["ZW"]);

return $country; 
}
add_filter( 'woocommerce_countries', 'woo_remove_specific_country', 10, 1 );

Знаю, код получился довольно громоздким, но другого увы не нашел. Если вдруг кто-то знает более изящный способ удалить махом все страны из woocommerce, пишите пожалуйста в комментарии.

Далее же нужно заменить своими, якобы, странами но в нашем случае это будут районы. Для этого нам поможет плагин Woocommerce Add Countries, найти который вы сможете без труда в репозитории. После загрузки и установки плагина перейдите в раздел Woocommerce -> Add Countries.

зоны доставки в woocommerce

зоны доставки в woocommerce

Там находится лишь одна текстовая область куда и нужно будет вносить названия новых стран, однако делать это необходимо следуя определенным правилам. На той же странице сверху есть пример:

UK, United Kingdom, EU
FR, France, EU
NAF, New African Country, AF
NAC, New African Country, AS

Как вы поняли, сначала идет аббревиатура из 3-4 символов на латинице. Дальше название страны, в которой нам же нужно будет указывать вовсе не страну а нужный район. Ну и напоследок аббревиатура континента. Здесь лучше использовать существующие варианты, поскольку я не проверял как будет работать система, если вместо AS (Азия), или EU (Европа) указывать что-либо иное. И не забывайте, что каждый новый район нужно писать с новой строки. Примерно как-то так:

VGD, Имя вашего города (в пределах города), EU
KIRP, Кирпичный, EU
ZAR1, Заречный, EU
PROM, Промзона, EU
...

Просто заполняете по данному примеру все свои районы и дальше переходим к следующему этапу. Теперь нужно добавить зоны доставки. Для этого переходим Woocommerce -> Настройки, заходим во вкладку Доставка и жмем на кнопку Добавить зону доставки

зоны доставки в woocommerce

зоны доставки в woocommerce

Далее заполняете поля. В первую очередь нам нужно заполнить зону доставки в пределах города, поэтому в поле Название зоны, пишите имя вашего города и в скобках можете указать, что доставка осуществляется “в пределах города”

Если предыдущие пункты вы выполнили верно, то в поле Зоны у вас на выбор должны будут появиться все районы, которые вы добавили ранее. В данном случае выбираете имя своего города.

зоны доставки в woocommerce

зоны доставки в woocommerce

Затем нажмите кнопку Добавить метод доставки и там выбираете соответственно метод. Сначала выберем стандартный – Бесплатная доставка.

зоны доставки в woocommerce

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

зоны доставки в woocommerce

В пункте Требования бесплатной доставки выберите Сумма минимального заказа и дальше указываете нужную сумму. (В моем случае это 2000 тг, за доставку в пределах города.)

зоны доставки в woocommerce

Ну а для того чтобы создать более гибкие условия для платной доставки, т.е. моем случае например клиент захотел чтобы в отдаленные районы даже платная доставка сработала только при определенной сумме заказа, для этого мы воспользуемся еще одним интересным плагином – Flexible Shipping for WooCommerce. Его также вы найдете в репозитории при необходимости.

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

зоны доставки в woocommerce

Выберите его и нажмите изменить.

зоны доставки в woocommerce

Вас перекинет на следующую страницу где вы сможете изменить его настройки. В поле Shipping title укажите название, например “Доставка платная”, а в Tax Status поставьте “нет” (если у вас в системе конечно не учитываются налоговые ставки) Затем нажмите кнопку ниже Add new

зоны доставки в woocommerce

Вы попадете на следующую страницу. Там особо заполнять ничего не нужно, но это конечно уже зависит от ваших предпочтений. Главное чтобы стояла галочка напротив пункта Enable/Disable. Ну и я разве что, для визуального вида добавил слово “платная” в поле Method Title

зоны доставки в woocommerce

А вот важные поля будут находится уже в самом низу. В поле под Based on выбираем Price, в Min указываем 0, а в Max – 2000. Ну а под Cost per order цену за данный вид доставки для данной зоны. В моем случае 150 тг

зоны доставки в woocommerce

И из всех последних проделанных нами действий для настройки доставки в зоне В пределах города получается, что у нас есть два вида, бесплатная и платная. За бесплатную отвечает стандартный функционал Woocommerce, которая срабатывает когда сумма заказа превышает сумму в 2000 тг. А если сумма меньше, то в свою очередь вступает работа доставки от плагина Flexible Shipping, у который мы выставили определенные условия: минимальная сумма заказа 0, максимальная – 2000 тг.

Теперь все тоже самое, но уже с другими условиями мы проделываем для других зон доставок, а соответственно и для других районов вашего города. Добавляем новую зону доставки, выставляем нужные зоны (районы), добавляем для них методы доставки и настраиваем их так, как вам нужно. В общем дальше все делаем по аналогии.

Ну а далее, когда все зоны созданы и отстроены, нужно убедиться что в настройках общих конфигураций по доставке выставлены нужные опции. Для этого заходим в Woocommerce -> Настройки -> Вкладка Доставка -> Под вкладка “Параметры доставки” и убираем галочки с двух пунктов: Включить калькулятор стоимости доставки в корзине и Спрятать стоимость доставки, пока адрес не введен

зоны доставки в woocommerce

Затем, если вы используете плагин Saphali WC (я не буду углубляться в подробности по поводу данного плагина, просто если я не ошибаюсь, практически каждый пользователь живущий на территории постсоветского пространства устанавливает Woocommerce в связке с данным плагином. Если же я ошибаюсь, пишите также в комментариях, мне было бы очень интересно послушать что думают другие люди по этому поводу), переходим Woocommerce -> Saphali WC -> Вкладка Управление полями

зоны доставки в woocommerce

Там вы найдете поля с названием “Страна”. Их нужно изменить на “Район”.

зоны доставки в woocommerce

И напоследок нужно установить еще один плагин – Loco Translate. Это в принципе очень полезный плагин для перевода тем, плагинов на любой нужный язык, и возможно что у многих он уже установлен. Он нам нужен лишь для того чтобы изменить одну сточку в Woocommerce. Нужно зайти в Loco Translate -> Plugins.

зоны доставки в woocommerce

Выбрать из списка плагинов WooCommerce, скорее всего у вас уже будет русская тема, поэтому под языком “Russian” надо будет нажать на “Edit”.

зоны доставки в woocommerce

зоны доставки в woocommerce

Там будет очень много фраз и поэтому мы воспользуемся фильтром где укажем текст “выберите страну” и система должна вывести соответствие.

зоны доставки в woocommerce

И затем в области Russian translation: Нужно будет просто заменить на “выберите район”.

зоны доставки в woocommerce

Вот и все.

зоны доставки в woocommerce

зоны доставки в woocommerce

Должен предупредить, данный способ служит для довольно специфичной направленности и не каждому подойдет. Некоторые моменты могут отличаться от того что будет у вас, особенно когда речь идет о дополнительных плагинах. Да и как я уже сказал ранее, некоторые вещи нам пришлось уничтожить, для того чтобы потом использовать свои задумки не совсем по назначению. Однако я все же надеюсь что найдутся люди, которым данная статься действительно поможет, поскольку если бы я сам наткнулся на всю эту информацию о том как организовать “зоны доставки в woocommerce по районам” в одном месте и сразу, мне не пришлось бы собирать ее по крупицам, методом проб и ошибок и я сохранил бы уйму потраченного времени. Если у вас есть какие-то замечания, предложения, а также любая справедливая и конструтивная критика по данной теме, обязательно пишите в комментариях.

  1. Обыскался и уже отчаялся, варианты оформить доставку по выделенным полигонам города.Ваш вариант -лучик надежды:)) Ещё не приступил делать, но у меня вопрос: если в один район попадают два разных полигона (например – красная зона и синяя зона), тогда как мне создать зоны доставки? не по районам, а по самим полигонам (у меня их 5) введя почтовые индексы входящие в полигон? Мне только нужно, что бы при вводе адреса доставки, определялась мин цена заказа в зависимости от полигона (выделенной зоны на яндекс карте, (не район)). Это же реально реализовать? Может кто поможет? rproskura@mail.ru

    1. Добрый день. Насколько я Вас понял, то что Вы хотите сделать связано в первую очередь с яндекс-картами и поэтому метод описанный в статье не подойдет для Вашей задачи, поскольку используется совершенно другой подход. Я писал эту статью несколько лет назад, поэтому многое уже и сам позабыл, но я точно помню что за основу я взял переделку дефолтных вордрессовских стран в районы. И уже по выбору “района” высчитывал стоимость доставки с помощью стандартных функций и некоторых плагинов. В этом способе даже не требовалось писать какого-то серьезного кода, и единственный коддинг который мне понадобился, убирал все стандартные страны. В Вашем же случае, я могу конечно и ошибаться, нужна в первую очередь работа с API yandex-карт (https://yandex.ru/dev/maps/jsapi/doc/2.1/quick-start/index.html). Писать либо функционал для темы (functions.php), либо полноценный плагин, который бы связывал выбор пользователем полигонов на карте в момент оформления доставки через yandex API + javascript c бэкэндом самой системы wordpress и woocommerce. А это уже задача совершенно другого уровня. Но повторюсь, это если я правильно понял задачу и сам ничего не упустил. Вполне возможно есть варианты попроще, например может где-то есть уже подобный плагин или что-то похожее. Если же нет, то придется писать эту систему с нуля, либо обращаться к фрилансерам-специалистам. К сожалению пока больше ничем не смогу помочь. Возможно когда-то я попытаюсь вернуться к этой теме и написать статью как раз об этом, если у меня конечно в будущем хватит навыков.

  2. Большое спасибо. Только вы решили мою проблему.
    с небольшими изменениями:
    1 – плагина woocommerce add plugins не нашла, в функции добавила вручную:
    add_filter( ‘woocommerce_countries’, ‘my_add_my_country’ );
    function my_add_my_country( $countries ) {
    $new_countries = array(
    ‘PITER’ => __( ‘Санкт-Петербург’, ‘woocommerce’ ),
    ‘MOSC’ => __( ‘Москва’, ‘woocommerce’ ),
    ‘OTHER’ => __( ‘Другие города’, ‘woocommerce’ ),

    );
    return array_merge( $countries, $new_countries );
    }
    add_filter( ‘woocommerce_continents’, ‘my_add_my_country_to_continents’ );
    function my_add_my_country_to_continents( $continents ) {
    $continents[‘EU’][‘countries’][] = ‘PITER’;
    $continents[‘EU’][‘countries’][] = ‘MOSC’;
    $continents[‘EU’][‘countries’][] = ‘OTHER’;
    return $continents;
    }
    2- обошлось без плагина Sophili, вместо него плагин Checkout Field Editor for Woocommerce.

    Все работает прекрасно, еще раз благодарю

  3. Здравствуйте! Спасибо за статью. Подскажите, пожалуйста. А как сделать порядок районов произвольный, сейчас они в алфавитном порядке?

      1. Произвольный порядок:

        add_filter( ‘woocommerce_sort_countries’, ‘__return_false’ );

        add_filter( ‘woocommerce_countries’, ‘wc_custom_countries_order’, 10, 1 );
        function wc_custom_countries_order( $countries ) {
        // replace with iso code of the country (example: US or GB)
        unset($countries[‘country_1_iso_code’]);
        unset($countries[‘country_2_iso_code’]);
        unset($countries[‘country_3_iso_code’]);
        // replace with iso code of country AND country name (example: US | United States or GB | United Kingdom (UK)
        $countries = [‘country_1_iso’ => ‘country_1_name’] + [‘country_2_iso’ => ‘country_2_name’] + [‘country_3_iso’ => ‘country_3_name’] + $countries;

        return $countries;
        }

  4. Здравствуйте! Спасибо за статью.
    Добавила вариант доставки Flexible Shipping. Всё настроила. При сумме заказа в пределах, указанных в настройках, появляется вариант платной доставки, при выборе этого варианта сумма пересчитывается, т. е. тут всё хорошо.
    Но в пункте “Оплата” ( при выборе варианта платной доставки) появляется сообщение “К сожалению, у нас не предусмотрены методы оплаты, подходящие для вашего региона. Пожалуйста, свяжитесь с нами если вам необходима консультация или специальные условия.”, при том, что в настройках оплаты Woocommerce я указала в варианте оплаты наличными “Включено для способов доставки: любой метод Flexible Shipping”.
    Подскажите, пожалуйста, как это исправить?

  5. Вижу, что для многих ваша работа оказалась актуальной. Сегодня тоже пришлось решать вопрос с доставкой по городу и пригороду. Все сделал, как вы пишете – удалил страны, добавил плагины, внес нужные настройки. Только новые страны, они же зоны города, создал без плагина и тоже через код, как вы пишете в ответе на один из комментариев. Все красиво – на странице оформления заказа есть выбор зоны доставки. Вот только выбор зоны доставки почему-то не влияет на цену доставки, хотя для трех зон задал разную цену. Отображается цена для зоны, которая была создана первой. Не могу сообразить, что не так

    1. Все понял. Надо было выбрать Принудительная доставка по платёжному адресу клиента. Теперь все работает) Благодарю за помощь!

  6. Подскажите пожалуйста, а есть какие-то варианты сделать минимальный заказ для зон по адресу?
    https://prnt.sc/rifo7v
    В настройках Woocommerce создал бесплатные способы доставки для каждой из зон и указал им минимальные суммы заказов (1000, 2000, 3000). Но сейчас это не работает, получается что можно добавить товар на сумму меньше 2000 и например ввести адрес из красной зоны, где мин. заказ должен быть 2000. Но заказ все равно оформится.

  7. Еще было бы неплохо выводить что-то типа этого “На минимальный заказ вам не хватает Х руб”
    т.е. мин заказ 1000 руб для района, а у клиента в корзине на 800 руб. И чтобы выводилось, вам не хватает 200 руб для заказа.

  8. Внесу свои 5 копеек. Для упрощения всего процесса:

    Сначала добавим через Add Countries.
    Не обязательно удалять все страны, достаточно в настройках вукомерса во вкладке “Основные настрйоки” выбрать пункты меню “Продавать и отправлять в определённые страны” и выбрать наши необходимые страны (и районы, которые вы добавили через адд кантрис) и все, все ненужные страны больше нас не беспокоят. профит ! )

  9. Благодарю! Самая лучшая статья для доставки еды Woocommerce. За час реализовал то, что дела методом тыка несколько дней.

    1. Вообще должен, но если по какой-либо причине этого не происходит (возможно плагин устарел, или еще что), можно попробовать вставить свои зоны вручную. Для этого в файл вашей темы functions.php добавляем следующий код:

      add_filter( ‘woocommerce_countries’, ‘opytlife_add_my_country’ );
      function opytlife_add_my_country ( $countries ) {

      $new_countries = array(
      // здесь снизу указываем свои районы или зоны
      ‘ZON1’ => __( ‘Первый район’, ‘woocommerce’ ),
      ‘ZON2’ => __( ‘Второй район’, ‘woocommerce’ ),
      );

      return array_merge( $countries, $new_countries );
      }

      add_filter( ‘woocommerce_continents’, ‘opytlife_add_my_country_to_continents’ );
      function opytlife_add_my_country_to_continents ( $continents ) {

      $continents[‘EU’][‘countries’][] = ‘ZON1’;
      $continents[‘EU’][‘countries’][] = ‘ZON2’;

      return $continents;
      }

        1. Скиньте скриншот ошибки, которую вы получаете на mr-zag@mail.ru пожалуйста. У меня в данный момент нет актуальных проектов на WooCommerce. Сегодня вечером протестирую на своем локальном сервере.

          1. Прошу прощения, всё получилось с плагином, поменял в основных настройках торговую точку на “Продавать во всех странах”, и в доставке зоны появились. Единственный момент у меня, почему-то, при оформлении заказа нет пункта “Выберите район”, он сразу первую зону выбирает. А так всё работает, получилось всё так как хотел, спасибо за статью и помощь. В интернете реально нет информации по данному вопросу. СПАСИБО!

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

  10. Для тех у кого как и у меня плагин Loco Translate не хочет переводить из-за ошибки сервера.
    Строчка “Select a country” находится в файле includes/wc-template-functions.php строка № 2686.
    Тупо на русскую можете поменять “Выбрать район”.

    При обновлений woocommerce все пропадет так что это не лучшая практика если вы работаете без дочерней темы.

  11. Мега ОГРОМНОЕ спасибо за подробный урок.
    Искала как реализовать такую функцию и нашла только у вас.
    Подробно и понятно написано.
    Все работает 🙂

  12. Спасибо большое, искал именно подобную схему)
    Все оказалось просто)
    Только у меня страны не все удалились почему то(
    А так все работает.

    И еще, зачем использовать сторонний плагин
    Flexible Shipping for WooCommerce если у вукомерса есть вариант “фискированная стоимость доставки”

  13. Огромное вам спасибо, воспользовался вашим плагином. Только вместо районов у мены были населенные пункты к которым была жестко закреплена цена доставки. Всё очень круто получилось.

    1. Вам спасибо за комментарий. Теперь хоть знаю что эта статья была кому-то полезной

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Приветствую всех тех, кто случайно, или целенаправленно забрел на мой скромный блог. Меня зовут Артур и здесь вы вряд ли найдете советы в стиле "10 лучших способов эффективного заработка", или "Как создать сайт и заработать на нем". Нет, здесь я буду описывать свои шаги и опыт для достижения каких либо целей. И должен признать, что многих вещей, до написания статей я могу не знать и не факт что те действия, которые я буду осуществлять будут абсолютно верны.

А возможно такое, что у меня в голове родится какая-нибудь идея или сформируется интересная мысль, или просто захочется поделиться какой-нибудь информацией, возможно даже полностью бесполезной и ненужной для большинства посетителей, можете не сомневаться, об этом я тоже напишу.

Я довольно творческий человек и мне интересно многое, но не всегда хватает времени, знаний, сил, да и просто силы воли чтобы завершить начатое. Поэтому, я и решил создать такой вот веб-ресурс, который был бы полезен и мне, а также и другим людям. И буду очень рад, если блог и мой "дилетантский опыт" кому то действительно поможет. В общем велком! :)