gpt4 book ai didi

php - 添加更新或删除 WooCommerce 运输订单项目

转载 作者:行者123 更新时间:2023-12-04 12:42:54 25 4
gpt4 key购买 nike

我已经为从亚马逊同步的订单添加了运费。出于某种原因,我不得不在为亚马逊订单创建的 woo 订单中设置自定义运费统一价格。如下:

    $OrderOBJ = wc_get_order(2343);
$item = new WC_Order_Item_Shipping();

$new_ship_price = 10;

$shippingItem = $OrderOBJ->get_items('shipping');

$item->set_method_title( "Amazon shipping rate" );
$item->set_method_id( "amazon_flat_rate:17" );
$item->set_total( $new_ship_price );
$OrderOBJ->update_item( $item );

$OrderOBJ->calculate_totals();
$OrderOBJ->save()

问题是,每次亚马逊状态更改时我都必须更新订单,这样做没有问题,问题是如果更新了运费我也必须更新。但我还没有找到这样做。谁能告诉我如何更新以这种方式设置的订单的运输项目?或者是这样的事实,一旦设置了运输项目,我们就无法更新或删除它?任何形式的建议都受到高度赞赏。谢谢。

最佳答案

要添加或更新运输项目,请使用以下命令:

$order_id = 2343;
$order = wc_get_order($order_id);
$cost = 10;
$items = (array) $order->get_items('shipping');
$country = $order->get_shipping_country();

// Set the array for tax calculations
$calculate_tax_for = array(
'country' => $country_code,
'state' => '', // Can be set (optional)
'postcode' => '', // Can be set (optional)
'city' => '', // Can be set (optional)
);

if ( sizeof( $items ) == 0 ) {
$item = new WC_Order_Item_Shipping();
$items = array($item);
$new_item = true;
}

// Loop through shipping items
foreach ( $items as $item ) {
$item->set_method_title( __("Amazon shipping rate") );
$item->set_method_id( "amazon_flat_rate:17" ); // set an existing Shipping method rate ID
$item->set_total( $cost ); // (optional)

$item->calculate_taxes( $calculate_tax_for ); // Calculate taxes

if( isset($new_item) && $new_item ) {
$order->add_item( $item );
} else {
$item->save()
}
}
$order->calculate_totals();

它应该更好地工作......


要删除运输项目,请使用以下内容:

$order_id = 2343;
$order = wc_get_order($order_id);
$items = (array) $order->get_items('shipping');

if ( sizeof( $items ) > 0 ) {
// Loop through shipping items
foreach ( $items as $item_id => $item ) {
$order->remove_item( $item_id );
}
$order->calculate_totals();
}

相关:Add a shipping to an order programmatically in Woocommerce 3

关于php - 添加更新或删除 WooCommerce 运输订单项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56038530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com