YITH WooCommerce Affiliates Premium 联盟插件避免叠加优惠券

使用插件: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;
}