diff --git a/CRM/Stripe/Page/Webhook.php b/CRM/Stripe/Page/Webhook.php index c837ffde09ab0b6af8cbdcafeeefcd84a328f956..3cc3bc023ad900dde2eedca90b7f2e8b4dc082e4 100644 --- a/CRM/Stripe/Page/Webhook.php +++ b/CRM/Stripe/Page/Webhook.php @@ -439,9 +439,22 @@ class CRM_Stripe_Page_Webhook extends CRM_Core_Page { )); } - return; break; + // Keep plans table in sync with Stripe when a plan is deleted. + case 'plan.deleted': + $plan_id = $stripe_event_data->data->object->id; + // Prepare escaped query params. + $query_params = array( + 1 => array($plan_id, 'String'), + 2 => array($processorId, 'Integer'), + ); + CRM_Core_DAO::executeQuery("DELETE FROM civicrm_stripe_plans WHERE + plan_id = %1 AND processor_id = %2", $query_params); + + break; + + return; }