php WooCommerce中的更改订单发货总额

svujldwt  于 2023-01-12  发布在  PHP
关注(0)|答案(1)|浏览(145)

我试图通过编程来更改订单的运费。我在woocommerce_order_status_processing操作钩子函数中尝试了类似以下的代码。我得到了要更新的运费总额,但没有联邦快递的实际行项目。我正在使用pluginhive的联邦快递运费插件。有没有办法更新联邦快递的价值以及总额?

$shipping = $order->get_shipping_total();
$new_shipping = 1.00;
$order->set_shipping_total($new_shipping);
$order->save();

$order->calculate_shipping();
$order->calculate_totals();
eh57zj3b

eh57zj3b1#

我最终使用了类似 * 的东西(感谢@LoicTheAztec的帮助)*:

foreach( $order->get_items( 'shipping' ) as $item_id => $item ) {
    $item_price = $item->get_total();
    $qty = (int) $item->get_quantity();
    $item_price = ($item_price / $exchange_rate) * $qty;

    $item->set_total( $item_price );
    $item->calculate_taxes();
    $item->save();
}

$order->calculate_shipping();
$order->calculate_totals();

数量部分可能不需要。

相关问题