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