From 28ce801eaf6153b7368afafd9c865a06bc6989db Mon Sep 17 00:00:00 2001 From: "Jorge A. Torres" Date: Fri, 6 Aug 2021 15:15:34 -0700 Subject: [PATCH] Fix fatal error in the PPXO compat. layer when subscriptions is disabled --- .../src/PPEC/class-subscriptionshandler.php | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/modules/ppcp-compat/src/PPEC/class-subscriptionshandler.php b/modules/ppcp-compat/src/PPEC/class-subscriptionshandler.php index 61db98665..0881c40a5 100644 --- a/modules/ppcp-compat/src/PPEC/class-subscriptionshandler.php +++ b/modules/ppcp-compat/src/PPEC/class-subscriptionshandler.php @@ -148,25 +148,28 @@ class SubscriptionsHandler { return true; } - // My Account > Subscriptions > (Subscription). - if ( wcs_is_view_subscription_page() ) { - $subscription = wcs_get_subscription( absint( get_query_var( 'view-subscription' ) ) ); + // Checks that require Subscriptions. + if ( class_exists( \WC_Subscriptions::class ) ) { + // My Account > Subscriptions > (Subscription). + if ( wcs_is_view_subscription_page() ) { + $subscription = wcs_get_subscription( absint( get_query_var( 'view-subscription' ) ) ); - return ( $subscription && PPECHelper::PPEC_GATEWAY_ID === $subscription->get_payment_method() ); - } + return ( $subscription && PPECHelper::PPEC_GATEWAY_ID === $subscription->get_payment_method() ); + } - // Changing payment method? - if ( is_wc_endpoint_url( 'order-pay' ) && isset( $_GET['change_payment_method'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended - $subscription = wcs_get_subscription( absint( get_query_var( 'order-pay' ) ) ); + // Changing payment method? + if ( is_wc_endpoint_url( 'order-pay' ) && isset( $_GET['change_payment_method'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $subscription = wcs_get_subscription( absint( get_query_var( 'order-pay' ) ) ); - return ( $subscription && PPECHelper::PPEC_GATEWAY_ID === $subscription->get_payment_method() ); - } + return ( $subscription && PPECHelper::PPEC_GATEWAY_ID === $subscription->get_payment_method() ); + } - // Early renew (via modal). - if ( isset( $_GET['process_early_renewal'], $_GET['subscription_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended - $subscription = wcs_get_subscription( absint( $_GET['subscription_id'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended + // Early renew (via modal). + if ( isset( $_GET['process_early_renewal'], $_GET['subscription_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $subscription = wcs_get_subscription( absint( $_GET['subscription_id'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended - return ( $subscription && PPECHelper::PPEC_GATEWAY_ID === $subscription->get_payment_method() ); + return ( $subscription && PPECHelper::PPEC_GATEWAY_ID === $subscription->get_payment_method() ); + } } // Admin-only from here onwards.