使用插件:YITH WooCommerce Affiliates Premium如果开启了联盟专属优惠,有时候会导致优惠码可以叠加使用。
可以将以下代码添加到您的当前启用主题的 functions.php
文件中,避免叠加优惠
/**
* 禁止联盟优惠和其他优惠券叠加
*/
add_filter( 'woocommerce_coupon_is_valid', 'dakweb_prevent_coupon_stack', 10, 2 );
function dakweb_prevent_coupon_stack( $valid, $coupon ) {
// 获取当前已应用的优惠券
$applied_coupons = WC()->cart->get_applied_coupons();
// 如果当前还没使用任何优惠券,直接返回
if ( empty( $applied_coupons ) ) {
return $valid;
}
// 设定你的联盟优惠券前缀或关键词(比如 yith_wcaf 生成的优惠码)
$affiliate_prefix = 'alliance'; // 你可以改成 wcaf 或者具体优惠码前缀
foreach ( $applied_coupons as $applied ) {
// 如果购物车中已有一个联盟优惠券
if ( stripos( $applied, $affiliate_prefix ) !== false ) {
// 且尝试再用别的优惠券,就不允许
if ( $coupon->get_code() !== $applied ) {
return false;
}
}
}
return $valid;
}