На странице Checkout при выборе "Область\район" (читай регионы) изменяются данные методов доставки. Методы прикрепляются к зонам по их идентификатору и задаются в админке (настройки доставки WooCommerce). Так работает WC.
Через фильтр woocommerce_states добавлены свои регионы со своими идентификаторами. Создаю зону Север. Затем к зоне "Север" прикрепляю регион Североуральск с идентификатором SVK. К этой же зоне прикреплён метод доставки - Бесплатно при заказе от 100 рублей. На этом этапе методы подгружаются правильно, в соответствии с регионом.
Подключаю сторонний плагин СДЭК. Он перебивает поле "Область\район" и добавляет зоны со своими идентификаторами. Получается, Североуральск становится с ID 123.
Проблема в том, что в методах доставки остаются только методы от СДЭК, а созданные от WooCommerce исчезают.
Что пробовал:
1. Задавать регионам идентификаторы, как от СДЭК. Но, к сожалению, это не помогло.
2. Через экшен "woocommerce_checkout_update_order_review" обновлять список доступных методов оплаты. В нём есть переменная post_data, которая хранит id региона от СДЭК. Я дошёл до момента, когда я получаю нужные методы доставки. То есть при получении ID региона от СДЭК (123), я могу получить методы доставки прикреплённые к ID SVK. Но застопорился на том, как их добавить в список на странице Checkout.