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

时间:2019-10-24 13:08:58

标签: php woocommerce

您好,我试图根据购物车中有多少物品来设置购物车中的不同运输类别。我试图通过将以下内容添加到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技能。非常感谢您的帮助。

1 个答案:

答案 0 :(得分: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 );

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