Details
-
Type: Sub-task
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.2.0
-
Fix Version/s: 4.2.0
-
Component/s: CiviContribute, CiviMember
-
Labels:None
Description
Currently, a back-office "Cancel" action is provided in the Contributions tab, Recurring Contributions selector. However, this action simply updates the recurring contribution status in the CiviCRM DB (after giving a jScript warning). No "Cancel" action is provided in the back-end for Auto-renew memberships.
Extend this functionality for Auth.net, PayPal and Google Checkout as follows:
Recurring Contributions
===================
- Cancel action in Recurring Contributions selector should check whether the associated payment processor class has a cancelSubscription method. If so, user is prompted to choose whether they want to "Send cancellation request to $processorName" or "Set CiviCRM recurring contribution status to cancelled (recurring payment must be cancelled manually with the payment processor)." Suggest using a radio button for this choice, no default is set so user has to explicitly select an option. Also display checkbox "[ ] Send Notification" - IF contact has a valid email address. Default for checkbox is true.
- Where possible, set a flag in processor cancellation API to suppress notifications sent by the processor (so donor doesn't get 2 notifications)
- If processor class doesn't have cancelSubscription method we can retain current behavior (warning alert box).
- Also check with the recurring contribution is linked to an auto-renew membership (via civicrm_membership.recur_contribution_id). If so, add warning in the above pop-up dialog: "WARNING: This recurring contribution is linked to an auto-renew membership. If you cancel it, the associated membership will no longer renew automatically. However, the current membership status will not be affected."
- If processor request succeeds, update recur contribution status, insert an Activity record, and send cancellation notification to donor.
- Add new activity type - "Cancel Recurring Contribution"
- Activity description should include original "processor_id" and any cancellation tracking transaction id's received from processor
- Activity source is the logged in user's contact_id - the person doing the cancelling. Target is the contributor.
- Send cancellation notification to donor / member if "Send Notification" is true (see message template section below)
Auto-renew Memberships
====================
- New 'action' for Membership selector when auto-renew is true: "Cancel Auto-renewal".
- Functionality when clicked is the same as above, except warning text is different in pop-up: "WARNING: If you cancel the recurring contribution associated with this membership, the membership will no longer be renewed automatically. However, the current membership status will not be affected."
NOTE: This action does not affect the current membership status. It only sets the civicrm_membership.recur_contribution_id to NULL - which "removes" the auto-renew = true property of the membership.
System workflow message template(s) for Recurring Contribution and Auto-renew Membership Cancellations
====================================================================================
I could not find the message template which handles notification for the existing front-end auto-renew cancellation functionality??? In any case, I think it may be best to create new system workflow msg template(s) - since I don't think we can add functionality easily to existing msg templates during upgrades (if they've been modified by the admin user).
I think it's better to create two different templates - one for recurring contribution cancellations, and one for auto-renew membership cancellations . This gives admins more flexibility to customize the text w/o worrying about a bunch of conditional "code".
Both can follow the general pattern in "Event Registration Cancellation" template.
---------------
Dear %1
{/ts},
...
For recur contrib cancellations:
"Your recurring contribution of $amount, every $recur_frequency_interval $recur_frequency_unit has been cancelled."
...
The auto-renew template should include a "Membership Information" block for the associated membership:
"The automatic renewal of your $membershipType membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal."
===================
Membership Information
===================
Membership Status:
Membership Start Date:
Membership End Date: