Woocommerce,根据购物车项目数量设置运输类别

问题描述 投票:0回答:1

您好,我试图根据购物车中有多少物品来在购物车中设置不同的运输类别。我试图通过将以下内容添加到functions.php中来使其工作。

//Set shipping class based on item quantity
add_action( 'woocommerce_cart_calculate_fees', 'shipping_class_and_item_quantity'); 
function shipping_class_and_item_quantity( $cart ) {

    $shipping_class_one = '1-6-flaskor';
    $shipping_class_two = '7-12-flaskor';

    foreach( $cart->get_cart() as $cart_item ) {
        $product = $cart_item['data'];

        if( $cart_item['quantity'] >= 6 ) {
            $product->get_shipping_class() == $shipping_class_one;
        }else if( $cart_item['quantity'] >= 12 ){
            $product->get_shipping_class() == $shipping_class_two;
        }
    }
}

在网上找到了类似的东西,我一直在努力进行反向工程,但是似乎不起作用,这很可能是由于我有限的php技能。非常感谢您的帮助。

php woocommerce
1个回答
0
投票

我重新阅读了您的问题。这样的事情行吗?

function custom_shipping_cost_tiers( $cost, $method ) {
    $methodlabel = 'Enter the name of your method here' ie 'Flat Rate';

    if ($method->get_label() == $methodlabel) {
        $cart_item_count = WC()->cart->get_cart_contents_count();

        if ( $cart_item_count >= 6) {
            $cost = *SET FEE HERE*;
        }
        else if ( $cart_item_count >= 12){
            $cost = *SET FEE HERE*;
        }
    return $cost;
    }
 }

add_filter( 'woocommerce_shipping_rate_cost', 'custom_shipping_cost_tiers', 10, 2 );

这应该可以满足您的需求。

© www.soinside.com 2019 - 2024. All rights reserved.