custom以编程方式在woocommerce中添加运费价格

jhiyze9q  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(228)

这个问题在这里已经有了答案

基于购物车总重量的运输成本3(1个答案)
10个月前关门了。
我试图在woocommerce中通过在满足条件时更改交货价格对购物车进行自定义编码。
例如,如果产品重25公斤,那么只需在上面加上另一个价格。
下面是我在functions.php中的代码,但当我刷新购物车时,它似乎不起作用。

$chosen_shipping_state = WC()->customer->get_shipping_postcode();
$chosen_state = $chosen_shipping_state;

// Get the selected shipping price
$chosen_shipping_method_price = WC()->session->get('cart_totals')['shipping_total'];

if ($cartweight >= 25 && $cartweight <= 50) {

        WC()->session->set('shipping_total', '100');
        do_action( 'woocommerce_cart_updated' );

}

所以目前选定的快递价格是5.5美元。
如果产品重量超过25公斤,我如何使快递价格设置为11美元和购物车自动刷新这个数额?

pengsaosao

pengsaosao1#

首先,您必须选择配送方式id。
其次,您需要将此代码放在ActiveTheme目录中的functions.php文件中。如果您的代码不工作,请尝试清除。要清除woocommerce transient ,可以转到woocommerce->状态。然后单击tools选项卡,您将看到一个 transient 。点击清除 transient 按钮。

add_filter( 'woocommerce_package_rates', 'override_ups_rates' );
function override_ups_rates( $rates ) {
    foreach( $rates as $rate_key => $rate ){
        // Check if the shipping method ID is UPS for example
        if( ($rate->method_id == 'flexible_shipping_ups') ) {
            // Set cost to zero
            $rates[$rate_key]->cost = 5.50;
        } 
    }
    return $rates;        
}

相关问题