如何解决在Woocommerce中应用特定优惠券时隐藏免费送货
我正在尝试将其设置为对于特定的优惠券不可用。
然后我尝试了此操作,但它不起作用
add_filter( 'woocommerce_shipping_packages',function( $packages ) {
$applied_coupons = WC()->session->get( 'applied_coupons',array() );
if ( ! empty( $applied_coupons ) ) {
if (in_array("544",$applied_coupons))
{
$free_shipping_id_11 = 'free_shipping:11';
if($free_shipping_id_11){
unset($packages[0]['rates'][ $free_shipping_id_11 ]);
}
$free_shipping_id_9 = 'free_shipping:9';
if($free_shipping_id_9){
unset($packages[0]['rates'][ $free_shipping_id_9 ]);
}
}
}
return $packages;
} );
解决方法
请尝试以下操作:
add_filter( 'woocommerce_package_rates','filter_woocommerce_package_rates',10,2 );
function filter_woocommerce_package_rates( $rates,$package ) {
$targeted_coupons = array("544"); // Here set your related coupon codes
$applied_coupons = WC()->cart->get_applied_coupons();
if ( ! empty($applied_coupons) && array_intersect( $targeted_coupons,$applied_coupons ) ) {
foreach ( $rates as $rate_key => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
unset($rates[$rate_key]);
}
}
}
return $rates;
}
代码进入活动子主题(或活动主题)的functions.php文件中。经过测试,可以正常工作。
刷新发货缓存:
- 此代码已保存在您的functions.php文件中。
- 在运输区域设置中,禁用/保存任何运输方式,然后启用回退/保存。
您已完成,您可以对其进行测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。