],
];
- $templateContribution = CRM_Contribute_BAO_ContributionRecur::getTemplateContribution($recurID);
- if (!empty($templateContribution['id']) && $paymentProcessorObj->supportsEditRecurringContribution()) {
- // Use constant CRM_Core_Action::PREVIEW as there is no such thing as view template.
- // And reusing view will mangle the actions.
- $links[CRM_Core_Action::PREVIEW] = [
- 'name' => ts('View Template'),
- 'title' => ts('View Template Contribution'),
- 'url' => 'civicrm/contact/view/contribution',
- 'qs' => "reset=1&id={$templateContribution['id']}&cid=%%cid%%&action=view&context={$context}&force_create_template=1",
- ];
+ // 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') &&
($paymentProcessorObj->supports('ChangeSubscriptionAmount')
'qs' => "reset=1&crid=%%crid%%&cid=%%cid%%&context={$context}",
];
}
+ if (!empty($templateContribution['id']) && $paymentProcessorObj->supportsEditRecurringContribution()) {
+ // Use constant CRM_Core_Action::PREVIEW as there is no such thing as view template.
+ // And reusing view will mangle the actions.
+ $links[CRM_Core_Action::PREVIEW] = [
+ 'name' => ts('View Template'),
+ 'title' => ts('View Template Contribution'),
+ 'url' => 'civicrm/contact/view/contribution',
+ 'qs' => "reset=1&id={$templateContribution['id']}&cid=%%cid%%&action=view&context={$context}&force_create_template=1",
+ ];
+ }
return $links;
}
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')
) {