],
];
+ // In case there extension which have recurring payment and then
+ // extension is disabled and in that case payment object may be null
+ // To avoid the fatal error, return with VIEW link.
+ if (!is_object($paymentProcessorObj)) {
+ return $links;
+ }
+
$templateContribution = CRM_Contribute_BAO_ContributionRecur::getTemplateContribution($recurID);
if (
(CRM_Core_Permission::check('edit contributions') || $context !== 'contribution') &&
$links[CRM_Core_Action::DISABLE] = [
'name' => ts('Cancel'),
'title' => ts('Cancel'),
- 'ref' => 'crm-enable-disable',
+ 'url' => 'civicrm/contribute/unsubscribe',
+ 'qs' => 'reset=1&crid=%%crid%%&cid=%%cid%%&context=' . $context,
];
- 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}";
- }
-
if ($paymentProcessorObj->supports('UpdateSubscriptionBillingInfo')) {
$links[CRM_Core_Action::RENEW] = [
'name' => ts('Change Billing Details'),
public static function selfServiceRecurLinks(int $recurID): array {
$links = [];
$paymentProcessorObj = Civi\Payment\System::singleton()->getById(CRM_Contribute_BAO_ContributionRecur::getPaymentProcessorID($recurID));
+ // In case there extension which have recurring payment and then
+ // extension is disabled and in that case payment object may be null
+ // To avoid the fatal error, return with VIEW link.
+ if (!is_object($paymentProcessorObj)) {
+ return $links;
+ }
if ($paymentProcessorObj->supports('cancelRecurring')
&& $paymentProcessorObj->subscriptionURL($recurID, 'recur', 'cancel')
) {