Php Woocommerce,根据购物车项目数量设置发货类别

Php Woocommerce,根据购物车项目数量设置发货类别,php,woocommerce,Php,Woocommerce,嗨,我正在尝试根据购物车中的物品数量在购物车中设置不同的装运类别。我试图通过向functions.php添加以下内容来实现这一点 //根据物料数量设置发货类别 添加操作(“woocommerce\u cart\u calculate\u fees”、“shipping\u class\u和\u item\u quantity”); 函数装运类别和商品数量($cart){ $shipping_class_one='1-6瓶'; $shipping_class_two='7-12-flaskor';

嗨,我正在尝试根据购物车中的物品数量在购物车中设置不同的装运类别。我试图通过向functions.php添加以下内容来实现这一点

//根据物料数量设置发货类别
添加操作(“woocommerce\u cart\u calculate\u fees”、“shipping\u class\u和\u item\u quantity”);
函数装运类别和商品数量($cart){
$shipping_class_one='1-6瓶';
$shipping_class_two='7-12-flaskor';
foreach($cart->get\u cart()作为$cart\u项目){
$product=$cart_项目['data'];
如果($cart_item['quantity']>=6){
$product->get_shipping_class()==$shipping_class_one;
}如果($cart_item['quantity']>=12),则为else{
$product->get\u shipping\u class()==$shipping\u class\u two;
}
}
}

在网上找到了类似的东西,我一直在尝试反向工程,但似乎不起作用,很可能是因为我的php技能有限。非常感谢您的帮助。

我重新阅读了您的问题。你喜欢这个工作吗

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 );

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

嘿,我可以问一下您想要实现什么吗?woocommerce中的装运类别是在产品级别设置的。我建议根据购物车中的产品数量直接改变运输方式,如果这是您想要做的?或者直接操纵单一装运条件下的价格?请解释你的目标,我可以帮你嗨,威廉,谢谢你的帮助,这很有效,解决了我的大部分问题!但是,这个解决方案将指定的费用放在所有的运输方式上,您知道我如何实施检查,以便费率仅适用于特定的运输方式吗?Hey编辑了我的代码。这应该能奏效!无论您如何调用您的方法,都需要放入$methodlabel变量中。谢谢您,William,这就成功了!我真的很感谢你的帮助,谢谢!请你把答案标为正确!谢谢:)