Skip to content

Commit

Permalink
Always use cancelSubscription form instead of enable/disable entity f…
Browse files Browse the repository at this point in the history
…orm if cancel is not supported by processor
  • Loading branch information
mattwire committed Mar 9, 2020
1 parent 729bb6f commit 8299e49
Showing 1 changed file with 17 additions and 25 deletions.
42 changes: 17 additions & 25 deletions CRM/Contribute/Page/Tab.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page {
* - Edit
* - Cancel
*
* @param bool $recurID
* @param int $recurID
* @param string $context
*
* @return array
*/
public static function recurLinks($recurID = FALSE, $context = 'contribution') {
public static function recurLinks($recurID, $context = 'contribution') {
$links = [
CRM_Core_Action::VIEW => [
'name' => ts('View'),
Expand All @@ -68,30 +68,22 @@ public static function recurLinks($recurID = FALSE, $context = 'contribution') {
],
];

if ($recurID) {
$paymentProcessorObj = CRM_Contribute_BAO_ContributionRecur::getPaymentProcessorObject($recurID);
if ($paymentProcessorObj) {
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'),
'title' => ts('Change Billing Details'),
'url' => 'civicrm/contribute/updatebilling',
'qs' => "reset=1&crid=%%crid%%&cid=%%cid%%&context={$context}",
];
}

if (!$paymentProcessorObj->supports('ChangeSubscriptionAmount') && !$paymentProcessorObj->supports('EditRecurringContribution')) {
unset($links[CRM_Core_Action::UPDATE]);
}
$paymentProcessorObj = CRM_Contribute_BAO_ContributionRecur::getPaymentProcessorObject($recurID);
if ($paymentProcessorObj) {
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'),
'title' => ts('Change Billing Details'),
'url' => 'civicrm/contribute/updatebilling',
'qs' => "reset=1&crid=%%crid%%&cid=%%cid%%&context={$context}",
];
}
else {
unset($links[CRM_Core_Action::DISABLE]);

if (!$paymentProcessorObj->supports('ChangeSubscriptionAmount') && !$paymentProcessorObj->supports('EditRecurringContribution')) {
unset($links[CRM_Core_Action::UPDATE]);
}
}
Expand Down

0 comments on commit 8299e49

Please sign in to comment.