Я разработал плагин для настраиваемого метода доставки в Woocommerce.
Имея только 1 метод доставки, он ищет через свой собственный API, какие перевозчики доступны, и возвращает (один или несколько) с идентификатором, стоимостью и именем .
Получается, что при 1-м расчете доставки в корзине все ок. Начиная со второго расчета, он не «удаляет» предыдущий.
Пример:
1) Доставка в почтовый индекс Куяба
Перевозчик X - R $ 10,00
Перевозчик Y - R $ 15,50
2) Доставка в КООС в Рио-де-Жанейро
Перевозчик X - R $ 30,00
Перевозчик Y - R $ 15,00 (однако оператор Y даже не обслуживает этот регион и не возвращается API. Мне кажется, что кэш WooCommerce удерживает оператора там.)
Мой вопрос: есть ли способ, с помощью которого я могу заставить Woocommerce игнорировать предыдущие тарифы / фрахт?
Я уже включил отладку (режим отладки) в настройках доставки, но это не помогло.
Ниже фрагмента кода (в "Calculate_shipping") плагина, который возвращает доступные методы доставки.
$fretes = json_decode($res);
foreach ($fretes as $frete) {
// send the final rate to the user.
$this->add_rate(array(
'id' => $frete->id,
'label' => $frete->label,
'cost' => $frete->cost
));
}