/** * Checks if a subscription has reached the maximum paycycle repetitions. * If the last paycycle was paid then the subscription is cancelled. * * @since 1.0.0 * @internal Called by process_purchase() and request_payment() * * @param MS_Model_Relationship $subscription * @param M2_Stripe_Subscription $stripe_sub */ protected function cancel_if_done($subscription, $stripe_sub) { $membership = $subscription->get_membership(); if ($membership->pay_cycle_repetitions < 1) { return; } $payments = $subscription->get_payments(); if (count($payments) < $membership->pay_cycle_repetitions) { return; } $stripe_sub->cancel(array('at_period_end' => true)); }