This is a simple template, with a slightly smaller subset of values than the exisiting one.
It pulls out the recurring part to a trait...
$msgType = 'info';
}
else {
- $tplParams['recur_frequency_interval'] = $this->getSubscriptionDetails()->frequency_interval;
- $tplParams['recur_frequency_unit'] = $this->getSubscriptionDetails()->frequency_unit;
- $tplParams['amount'] = CRM_Utils_Money::format($this->getSubscriptionDetails()->amount, $this->getSubscriptionDetails()->currency);
- $tplParams['contact'] = ['display_name' => $this->_donorDisplayName];
$status = ts('The recurring contribution of %1, every %2 %3 has been cancelled.',
[
- 1 => $tplParams['amount'],
- 2 => $tplParams['recur_frequency_interval'],
- 3 => $tplParams['recur_frequency_unit'],
+ 1 => CRM_Utils_Money::format($this->getSubscriptionDetails()->amount, $this->getSubscriptionDetails()->currency),
+ 2 => $this->getSubscriptionDetails()->frequency_interval,
+ 3 => $this->getSubscriptionDetails()->frequency_unit,
]
);
$msgTitle = 'Contribution Cancelled';
'valueName' => $this->_mode == 'auto_renew' ? 'membership_autorenew_cancelled' : 'contribution_recurring_cancelled',
'contactId' => $this->getSubscriptionDetails()->contact_id,
'tplParams' => $tplParams,
+ 'tokenContext' => ['contribution_recurId' => $this->getContributionRecurID()],
//'isTest' => $isTest, set this from _objects
'PDFFilename' => 'receipt.pdf',
'from' => CRM_Contribute_BAO_ContributionRecur::getRecurFromAddress($this->getContributionRecurID()),
--- /dev/null
+<?php
+
+/**
+ * @support template-only
+ */
+class CRM_Contribute_WorkflowMessage_RecurringCancelled extends Civi\WorkflowMessage\GenericWorkflowMessage {
+ use CRM_Contribute_WorkflowMessage_RecurringTrait;
+
+ public const WORKFLOW = 'contribution_recurring_cancelled';
+
+ /**
+ * The recurring contribution contact.
+ *
+ * @var array|null
+ *
+ * @scope tokenContext
+ *
+ * @required
+ */
+ public $contact;
+
+ protected function exportExtraTokenContext(array &$export): void {
+ $export['smartyTokenAlias']['amount'] = 'contribution_recur.amount';
+ $export['smartyTokenAlias']['recur_frequency_unit'] = 'contribution_recur.frequency_unit:label';
+ $export['smartyTokenAlias']['recur_frequency_interval'] = 'contribution_recur.frequency_interval';
+ }
+
+}
* @method array getContributionRecur()
*/
class CRM_Contribute_WorkflowMessage_RecurringEdit extends Civi\WorkflowMessage\GenericWorkflowMessage {
- const WORKFLOW = 'contribution_recurring_edit';
+ use CRM_Contribute_WorkflowMessage_RecurringTrait;
+
+ public const WORKFLOW = 'contribution_recurring_edit';
/**
* The recurring contribution contact.
*/
public $contact;
- /**
- * The recurring contribution.
- *
- * @var array|null
- *
- * @scope tokenContext as contribution_recur
- *
- * @required
- */
- public $contributionRecur;
-
- /**
- * @var int
- * @scope tokenContext as contribution_recurId
- */
- public $contributionRecurId;
-
/**
* Smarty template historically defined a property 'receipt_from_email'.
* (Note the asymmetric lack of 'receipt_from_name'.)
*/
public $receiptFromEmail;
- public function setContributionRecur(array $contributionRecur) {
- $this->contributionRecur = $contributionRecur;
- if (!empty($contributionRecur['id'])) {
- $this->contributionRecurId = $contributionRecur['id'];
- }
- return $this;
- }
-
protected function exportExtraTokenContext(array &$export): void {
$export['smartyTokenAlias']['installments'] = 'contribution_recur.installments';
$export['smartyTokenAlias']['amount'] = 'contribution_recur.amount';
--- /dev/null
+<?php
+
+/**
+ * @method array getContributionRecur()
+ * @method array getContact()
+ * @method $this setContact(array $contact)
+ */
+trait CRM_Contribute_WorkflowMessage_RecurringTrait {
+ /**
+ * The recurring contribution.
+ *
+ * @var array|null
+ *
+ * @scope tokenContext as contribution_recur
+ *
+ * @required
+ */
+ public $contributionRecur;
+
+ /**
+ * @var int
+ * @scope tokenContext as contribution_recurId
+ */
+ public $contributionRecurId;
+
+ /**
+ * Set recurring contribution object.
+ *
+ * @param array $contributionRecur
+ *
+ * @return $this
+ */
+ public function setContributionRecur(array $contributionRecur): self {
+ $this->contributionRecur = $contributionRecur;
+ if (!empty($contributionRecur['id'])) {
+ $this->contributionRecurId = $contributionRecur['id'];
+ }
+ return $this;
+ }
+
+}
"Subject: Recurring Contribution Cancellation Notification - Mr. Anthony\n Anderson II",
'Return-Path: bob@example.org',
'Dear Anthony,',
- 'Your recurring contribution of $ 10.00, every 1 month has been cancelled as requested',
+ 'Your recurring contribution of $10.00, every 1 month has been cancelled as requested',
];
}