Полагаю, это не совсем дубликат, я пытаюсь рассчитать стоимость доставки точно так же, как это делает woocommerce, когда клиент размещает заказ. Похоже, что «связанные» вопросы говорят об установлении фиксированной цены для заказов. ..
Я пытаюсь рассчитать стоимость доставки на основе страны клиента в динамически сгенерированном заказе (в основном это заказ, созданный wc_create_order()
), но похоже, что использование метода Calculate_totals мало что дает.
Я попытался выполнить поиск в Интернете, но ничего не помогло, я попытался использовать метод calculate_shipping()
из WC_Abstract_Order
, но он не сработал, что я мог сделать, чтобы рассчитать правильную стоимость доставки?
Есть ли где-нибудь функция, которая просто возвращает цену / стоимость доставки для адреса доставки?
Вот фрагмент того, что я пробовал (я пропустил часть, где я добавляю элементы)
// Retrieving the shipping and billing address from the POST request
$shipping = json_decode(stripslashes($_POST['shipping']), true);
$products_ids = json_decode(stripslashes($_POST['products']), true);
// Adding them to the order
$order->set_address($shipping, 'shipping');
if (isset($_POST['billing'])){
$bill = json_decode(stripslashes($_POST['billing']), true);
$bill['email'] = $shipping['email'];
}
else {
$bill = $shipping;
}
$order->set_address($bill,'billing');
............
// Calculating the order total based on the items inside the cart
// (the calculate_shipping doesn't really do much)
$order->calculate_shipping();
$order->calculate_totals();