Skip to content

Commit

Permalink
Merge pull request #12821 from mattwire/updatesubscription_fix
Browse files Browse the repository at this point in the history
Show recurring contribution links based on payment processor capabilities
  • Loading branch information
eileenmcnaughton authored Oct 7, 2018
2 parents d65bdcb + c6d558d commit cd6fae5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
20 changes: 11 additions & 9 deletions CRM/Contribute/Page/Tab.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,20 +81,29 @@ public static function &recurLinks($recurID = FALSE, $context = 'contribution')
if ($recurID) {
$links = self::$_links;
$paymentProcessorObj = CRM_Financial_BAO_PaymentProcessor::getProcessorForEntity($recurID, 'recur', 'obj');
if (is_object($paymentProcessorObj) && $paymentProcessorObj->supports('cancelRecurring')) {
if (!is_object($paymentProcessorObj)) {
unset($links[CRM_Core_Action::DISABLE]);
unset($links[CRM_Core_Action::UPDATE]);
return $links;
}
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 (is_object($paymentProcessorObj) && $paymentProcessorObj->isSupported('updateSubscriptionBillingInfo')) {
if ($paymentProcessorObj->supports('UpdateSubscriptionBillingInfo')) {
$links[CRM_Core_Action::RENEW] = array(
'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]);
}
return $links;
}

Expand Down Expand Up @@ -251,13 +260,6 @@ private function buildRecurringContributionsArray($recurContributions) {
}

if ($recurContributions[$recurId]['is_active']) {
$details = CRM_Contribute_BAO_ContributionRecur::getSubscriptionDetails($recurContributions[$recurId]['id'], 'recur');
$hideUpdate = $details->membership_id & $details->auto_renew;

if ($hideUpdate) {
$action -= CRM_Core_Action::UPDATE;
}

$recurContributions[$recurId]['action'] = CRM_Core_Action::formLink(self::recurLinks($recurId), $action,
array(
'cid' => $this->_contactId,
Expand Down
2 changes: 1 addition & 1 deletion templates/CRM/Contribute/Form/UpdateSubscription.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<div class="help">
{$changeHelpText}
{if $recurMembership}
<br/><strong> {ts}'WARNING: This recurring contribution is linked to membership:{/ts}
<br/><strong> {ts}WARNING: This recurring contribution is linked to membership:{/ts}
<a class="crm-hover-button" href='{crmURL p="civicrm/contact/view/membership" q="action=view&reset=1&cid=`$contactId`&id=`$recurMembership.membership_id`&context=membership&selectedChild=member"}'>{$recurMembership.membership_name}</a>
</strong>
{/if}
Expand Down

0 comments on commit cd6fae5

Please sign in to comment.