如何以编程方式设置WooCommerce中的运费金额

kri*_*ris 1 wordpress woocommerce

我正在创建一个Wordpress插件来处理WooCommerce的运送和交付.

我想简单地告诉我的WooCommerce 购物车(或订单),这是运费金额.

我已经尝试过直接设置WC()->cart->shipping_amount = $amount;,
并且->add_fee( $shippingServiceName, $amount );
在这两种情况下都会shipping_amount在购物车上保留0.

如何设置运费?

kri*_*ris 6

我最后直接在订单上而不是在购物车上设置它;
这是我在"完全购买"处理中创建和使用的方法:

function addShippingToOrder( $order, $shipping_amount, $shipping_name ) {

        $shipping_tax = array(); 
        $shipping_rate = new WC_Shipping_Rate( '', $shipping_name, 
                                      $shipping_amount, $shipping_tax, 
                                      'custom_shipping_method' );
        $order->add_shipping($shipping_rate);

}
Run Code Online (Sandbox Code Playgroud)

我还需要保留运输量,当我在车逻辑,然后进行检索,当我在顺序逻辑,而我做了一个自定义的车"会话"变量:
WC()->session->set( 'my_custom_shipping_amount', $amt );
WC()->session->get( 'my_custom_shipping_amount' )


这是一个非常简单的答案,但我花了最长的时间才弄明白 - 我甚至最终创建了一个插件,特别是为了调试对WC_Orders的更改:WooCommerce Order Debugger Plugin