Merge pull request #2320 from woocommerce/PCP-3215-only-restrict-duplicate-subscription-products-if-subscriptions-mode-active

Only prevent multiple subscription products in cart if PayPal Subscription API is active (3215)
This commit is contained in:
Emili Castells 2024-06-14 14:57:59 +02:00 committed by GitHub
commit d8bba13716
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -94,13 +94,25 @@ class PayPalSubscriptionsModule implements ModuleInterface {
*
* @psalm-suppress MissingClosureParamType
*/
static function ( $passed_validation, $product_id ) {
static function ( $passed_validation, $product_id ) use ( $c ) {
if ( WC()->cart->is_empty() ) {
return $passed_validation;
}
$product = wc_get_product( $product_id );
$settings = $c->get( 'wcgateway.settings' );
$subscriptions_mode = $settings->get( 'subscriptions_mode' );
if ( 'subscriptions_api' !== $subscriptions_mode ) {
if ( $product && $product->get_sold_individually() ) {
$product->set_sold_individually( false );
$product->save();
}
return $passed_validation;
}
if ( $product && $product->get_meta( '_ppcp_enable_subscription_product', true ) === 'yes' ) {
if ( ! $product->get_sold_individually() ) {
$product->set_sold_individually( true );