У меня есть пользовательская конечная точка API, которая запускает обработку стоимости доставки с использованием пользовательского класса.
Это прекрасно работает.
Я добавляю свой тариф, выполняя обычную функцию расчета:
WC()->cart->calculate_shipping();
Я вижу добавляемый тариф:
//... bunch of code to calculate cost
//... what it actually does here is irrelevant
$rate = array(
'id' => $this->id,
'label' => $this->title,
'cost' => $cost
);
$this->add_rate( $rate );
echo "added rate at $cost";
//prints: "added rate at 10"
Я могу вернуть ожидаемую стоимость доставки вмой метод API или на самой странице:
echo WC()->cart->get_cart_shipping_total();
<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>10.00</span>
Но когда я получу общую сумму корзины и корзины, я получу итоговую сумму за мой тестовый элемент, но доставка не будет найдена.Стоимость товара составляет $ 30, доставка, как мы видели, составляет $ 10:
<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>30.00</span>
Неужели я ошибаюсь, думая, что get_cart
и get_cart_total
должны вернуть стоимость доставки?
Любая помощь с дальнейшей отладкой или теориями для тестирования приветствуется.