public function Action() { if (empty($_POST['delete'])) { return '<p>Please select a processor to remove.</p>'; } if (empty($_POST['replace'])) { return '<p>Please select a processor to replace the removed processor with.</p>'; } $db = JFactory::getDBO(); $replacepp = new PaymentProcessor(); $replacepp->loadName($_POST['replace']); $deletepp = new PaymentProcessor(); $deletepp->loadName($_POST['delete']); $query = 'UPDATE #__acctexp_invoices' . ' SET `method` = \'' . $replacepp->processor_name . '\'' . ' WHERE `method` = \'' . $deletepp->processor_name . '\''; $db->setQuery($query); $db->query(); $query = 'UPDATE #__acctexp_subscr' . ' SET `type` = \'' . $replacepp->processor_name . '\'' . ' WHERE `type` = \'' . $deletepp->processor_name . '\''; $db->setQuery($query); $db->query(); $query = 'UPDATE #__acctexp_log_history' . ' SET `proc_id` = \'' . $replacepp->id . '\', `proc_name` = \'' . $replacepp->processor_name . '\'' . ' WHERE `proc_name` = \'' . $replacepp->processor_name . '\''; $db->setQuery($query); $db->query(); $planlist = SubscriptionPlanHandler::getPlanList(); foreach ($planlist as $planid) { $plan = new SubscriptionPlan(); $plan->load($planid); if (empty($plan->params['processors'])) { continue; } if (in_array($deletepp->id, $plan->params['processors'])) { unset($plan->params['processors'][array_search($deletepp->id, $plan->params['processors'])]); if (!in_array($replacepp->id, $plan->params['processors'])) { $plan->params['processors'][] = $replacepp->id; } $plan->check(); $plan->store(); } } $query = 'DELETE FROM #__acctexp_config_processors' . ' WHERE `id` = \'' . $deletepp->id . '\''; $db->setQuery($query); $db->query(); return "<p>Alright, replaced and deleted!</p>"; }