diff --git a/modules/ecommerce/edd/class-swsales-module-edd.php b/modules/ecommerce/edd/class-swsales-module-edd.php index 62dedcc..158d9c1 100644 --- a/modules/ecommerce/edd/class-swsales-module-edd.php +++ b/modules/ecommerce/edd/class-swsales-module-edd.php @@ -299,8 +299,16 @@ public static function automatic_coupon_application() { $code = new \EDD_Discount( $discount_code_id ); if ( !empty( $code ) && empty( $_REQUEST['discount'] ) ) { + // If there's a cart, check product requirements before applying. + if ( edd_get_cart_contents() && ! $code->is_product_requirements_met( false ) ) { + // Remove the discount if it was previously applied (e.g., before a Lifetime product was added to cart). + edd_unset_cart_discount( $code->code ); + EDD()->session->set( 'preset_discount', null ); + return; + } + //Set it in the $_REQUEST and EDD Session as the EDD init runs at priority 0 - $_REQUEST['discount'] = $code->code; + $_REQUEST['discount'] = $code->code; EDD()->session->set( 'preset_discount', $code->code ); } }