为此,需要在woocommerce_package_rates
过滤器挂钩,针对“固定费率”的运输方式。
在装运设置中flat rate 您将采用的运输方式set a cost of 5
.
每5项step, 运输成本将增加5:
从1项增加到5项:交货=5
•6至10项:交货=10
•从11到15项:交货=15
<等等
代码如下:
add_filter( \'woocommerce_package_rates\', \'different_rates_based_on_quantity_steps\', 10, 2 );
function different_rates_based_on_quantity_steps( $rates, $package ){
$items_count = WC()->cart->get_cart_contents_count(); // Cart item count
$items_change = 5; // number of items needed to increase the cost each time
$rate_operand = ceil( $items_count / $items_change ); // Operand increase each 5 items here
foreach ( $rates as $rate_key => $rate ){
// Targetting "Flat rate"
if( \'flat_rate\' === $rate->method_id ) {
$has_taxes = false;
// Set the new cost
$rates[$rate_key]->cost = $rate->cost * $rate_operand;
// Taxes rate cost (if enabled)
foreach ($rates[$rate_key]->taxes as $key => $tax){
if( $tax > 0 ){
// New tax calculated cost
$taxes[$key] = $tax * $rate_operand;
$has_taxes = true;
}
}
// Set new taxes cost
if( $has_taxes )
$rates[$rate_key]->taxes = $taxes;
}
}
return $rates;
}
代码进入功能。活动子主题(或活动主题)的php文件。已测试并正常工作。
Refresh the shipping caches: (必需)
此代码已保存在活动主题的函数中。php文件
购物车是空的,在配送区设置中,禁用/保存任何配送方式,然后启用后退/保存