paymentMethods->detach($payment_method, []); } catch (Exception $e) { $error = $e->getMessage(); error_log("Stripe payment error - encountered exception when removing payment method info for $payment_method: $error"); logApp("Stripe", "error", "Exception removing payment method for $payment_method: $error"); } } // Remove payment method from ITFlow mysqli_query($mysqli, "DELETE FROM client_saved_payment_methods WHERE saved_payment_id = $saved_payment_id"); // SQL Cascade delete will Remove All Associated Auto Payment Methods on recurring invoices in the recurring payments table. logAction("Payment Provider", "Update", "$session_name deleted saved payment method $saved_payment_description (PM: $payment_method)", $client_id); flash_alert("Payment method $saved_payment_description removed", 'error'); redirect(); }