diff --git a/CRM/Contribute/Page/Tab.php b/CRM/Contribute/Page/Tab.php index 2d75e2096c0c..f433bfc9cba3 100644 --- a/CRM/Contribute/Page/Tab.php +++ b/CRM/Contribute/Page/Tab.php @@ -70,16 +70,13 @@ public static function recurLinks(int $recurID, $context = 'contribution') { ]; } - $links[CRM_Core_Action::DISABLE] = [ - 'name' => ts('Cancel'), - 'title' => ts('Cancel'), - 'ref' => 'crm-enable-disable', - ]; - if ($paymentProcessorObj->supports('cancelRecurring')) { - unset($links[CRM_Core_Action::DISABLE]['extra'], $links[CRM_Core_Action::DISABLE]['ref']); - $links[CRM_Core_Action::DISABLE]['url'] = "civicrm/contribute/unsubscribe"; - $links[CRM_Core_Action::DISABLE]['qs'] = "reset=1&crid=%%crid%%&cid=%%cid%%&context={$context}"; + $links[CRM_Core_Action::DISABLE] = [ + 'name' => ts('Cancel'), + 'title' => ts('Cancel'), + 'url' => 'civicrm/contribute/unsubscribe', + 'qs' => "reset=1&crid=%%crid%%&cid=%%cid%%&context={$context}", + ]; } if ($paymentProcessorObj->supports('UpdateSubscriptionBillingInfo')) { diff --git a/CRM/Financial/BAO/PaymentProcessor.php b/CRM/Financial/BAO/PaymentProcessor.php index 7c94cad4f632..ccd1d66ccc7c 100644 --- a/CRM/Financial/BAO/PaymentProcessor.php +++ b/CRM/Financial/BAO/PaymentProcessor.php @@ -308,6 +308,24 @@ public static function getAllPaymentProcessors($mode = 'all', $reset = FALSE, $i } $processors = civicrm_api3('payment_processor', 'get', $retrievalParameters); + // Add the pay-later pseudo-processor. + $processors['values'][0] = [ + 'id' => 0, + 'payment_processor_type_id' => 0, + // This shouldn't be required but there are still some processors hacked into core with nasty 'if's. + 'api.payment_processor_type.getsingle' => ['name' => 'Manual'], + 'class_name' => 'Payment_Manual', + 'name' => 'pay_later', + 'billing_mode' => '', + 'is_default' => 0, + 'payment_instrument_id' => key(CRM_Core_OptionGroup::values('payment_instrument', FALSE, FALSE, FALSE, 'AND is_default = 1')), + // Making this optionally recur would give lots of options -but it should + // be a row in the payment processor table before we do that. + 'is_recur' => FALSE, + 'is_test' => FALSE, + 'domain_id' => CRM_Core_Config::domainID(), + 'is_active' => 1, + ]; foreach ($processors['values'] as $processor) { $fieldsToProvide = [ 'id', @@ -338,24 +356,6 @@ public static function getAllPaymentProcessors($mode = 'all', $reset = FALSE, $i $processors['values'][$processor['id']]['object'] = Civi\Payment\System::singleton()->getByProcessor($processors['values'][$processor['id']]); } - // Add the pay-later pseudo-processor. - $processors['values'][0] = [ - 'object' => new CRM_Core_Payment_Manual(), - 'id' => 0, - 'payment_processor_type_id' => 0, - // This shouldn't be required but there are still some processors hacked into core with nasty 'if's. - 'payment_processor_type' => 'Manual', - 'class_name' => 'Payment_Manual', - 'name' => 'pay_later', - 'billing_mode' => '', - 'is_default' => 0, - 'payment_instrument_id' => key(CRM_Core_OptionGroup::values('payment_instrument', FALSE, FALSE, FALSE, 'AND is_default = 1')), - // Making this optionally recur would give lots of options -but it should - // be a row in the payment processor table before we do that. - 'is_recur' => FALSE, - 'is_test' => FALSE, - ]; - CRM_Utils_Cache::singleton()->set($cacheKey, $processors['values']); return $processors['values'];