/** * When a member cancels a subscription we need to notify Stripe to also * cancel the Stripe subscription. * * @since 1.0.0 * @param MS_Model_Relationship $subscription The membership relationship. */ public function cancel_membership($subscription) { parent::cancel_membership($subscription); $this->_api->set_gateway($this); $customer = $this->_api->find_customer($subscription->get_member()); $membership = $subscription->get_membership(); $stripe_sub = false; if ($customer) { $stripe_sub = $this->_api->get_subscription($customer, $membership); } if ($stripe_sub) { $stripe_sub->cancel(array('at_period_end' => true)); } }