@@ -1626,7 +1626,7 @@ public function handle_upgrade_for_paypal( $member_id, $subscription_id ) {
16261626
16271627 if ( ! empty ( $ new_subscription_data ) ) {
16281628 if ( empty ( $ new_subscription_data ['delayed_until ' ] ) && ! empty ( $ get_user_old_subscription ['subscription_id ' ] ) ) {
1629- $ cancel_subscription = $ this ->cancel_subscription ( $ get_user_old_order , $ get_user_old_subscription );
1629+ $ cancel_subscription = $ subscription_service ->cancel_subscription ( $ get_user_old_order , $ get_user_old_subscription, true );
16301630
16311631 if ( empty ( $ cancel_subscription ['status ' ] ) ) {
16321632 PaymentGatewayLogging::log_error (
@@ -2413,7 +2413,7 @@ public function validate_setup( $membership_type ) {
24132413 *
24142414 * @return array
24152415 */
2416- public function cancel_subscription ( $ order , $ subscription ) {
2416+ public function cancel_subscription ( $ order , $ subscription, $ force_cancel = false ) {
24172417 if ( empty ( $ subscription ['subscription_id ' ] ) ) {
24182418 $ message = esc_html__ ( 'PayPal subscription ID not present. ' , 'user-registration ' );
24192419 return array (
@@ -2424,13 +2424,23 @@ public function cancel_subscription( $order, $subscription ) {
24242424
24252425 $ paypal_options = $ this ->get_paypal_rest_credentials ();
24262426
2427- $ response = $ this ->suspend_paypal_subscription (
2428- $ subscription ['subscription_id ' ],
2429- array (
2430- 'reason ' => 'User initiated cancellation ' ,
2431- ),
2432- $ paypal_options
2433- );
2427+ if ( $ force_cancel ) {
2428+ $ response = $ this ->cancel_paypal_subscription (
2429+ $ subscription ['subscription_id ' ],
2430+ array (
2431+ 'reason ' => 'Membership upgrade ' ,
2432+ ),
2433+ $ paypal_options
2434+ );
2435+ } else {
2436+ $ response = $ this ->suspend_paypal_subscription (
2437+ $ subscription ['subscription_id ' ],
2438+ array (
2439+ 'reason ' => 'User initiated cancellation ' ,
2440+ ),
2441+ $ paypal_options
2442+ );
2443+ }
24342444
24352445 if ( is_wp_error ( $ response ) ) {
24362446 PaymentGatewayLogging::log_transaction_failure (
0 commit comments