这可以使用以下连接的自定义函数来完成
woocommerce_package_rates
过滤钩,无需创建额外的折扣固定利率。当应用“Special50”优惠券时,以下代码将更改“统一费率”运输方法成本。
你应该先
“启用调试模式”
在Woocomerce设置中>配送>配送选项。
代码:
add_filter('woocommerce_package_rates', 'coupon_discount_on_flat_rate', 10, 2);
function coupon_discount_on_flat_rate( $rates, $package ){
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return $rates;
if( in_array( 'special50', WC()->cart->get_applied_coupons() ) ){
foreach ( $rates as $rate_key => $rate ){
$has_taxes = false;
if( $rate->method_id === 'flat_rate' ){
$rates[$rate_key]->cost = $rates[$rate_key]->cost / 2;
foreach ($rates[$rate_key]->taxes as $key => $tax){
if( $rates[$rate_key]->taxes[$key] > 0 ){
$has_taxes = true;
$taxes[$key] = $rates[$rate_key]->taxes[$key] / 2;
}
}
if( $has_taxes )
$rates[$rate_key]->taxes = $taxes;
}
}
}
return $rates;
}
代码放在活动子主题(或活动主题)的function.php文件中。测试和工作。
别忘了禁用
“启用调试模式”
一旦测试成功。