Merge pull request #10119 from eileenmcnaughton/deprecated
[civicrm-core.git] / CRM / Member / Tokens.php
index c4e8723db4e5ab6437bf8b43a951508926d7112b..7fe6496a292d3048d585762cb86eb48f3f696fb8 100644 (file)
@@ -44,14 +44,17 @@ class CRM_Member_Tokens extends \Civi\Token\AbstractTokenSubscriber {
    * Class constructor.
    */
   public function __construct() {
-    parent::__construct('membership', array(
-      'fee' => ts('Membership Fee'),
-      'id' => ts('Membership ID'),
-      'join_date' => ts('Membership Join Date'),
-      'start_date' => ts('Membership Start Date'),
-      'end_date' => ts('Membership End Date'),
-      'status' => ts('Membership Status'),
-      'type' => ts('Membership Type'),
+    parent::__construct('membership', array_merge(
+      array(
+        'fee' => ts('Membership Fee'),
+        'id' => ts('Membership ID'),
+        'join_date' => ts('Membership Join Date'),
+        'start_date' => ts('Membership Start Date'),
+        'end_date' => ts('Membership End Date'),
+        'status' => ts('Membership Status'),
+        'type' => ts('Membership Type'),
+      ),
+      $this->getCustomTokens('Membership')
     ));
   }
 
@@ -65,6 +68,11 @@ class CRM_Member_Tokens extends \Civi\Token\AbstractTokenSubscriber {
       && $processor->context['actionMapping']->getEntity() === 'civicrm_membership';
   }
 
+  /**
+   * Alter action schedule query.
+   *
+   * @param \Civi\ActionSchedule\Event\MailingQueryEvent $e
+   */
   public function alterActionScheduleQuery(\Civi\ActionSchedule\Event\MailingQueryEvent $e) {
     if ($e->mapping->getEntity() !== 'civicrm_membership') {
       return;
@@ -90,6 +98,9 @@ class CRM_Member_Tokens extends \Civi\Token\AbstractTokenSubscriber {
     elseif (isset($actionSearchResult->$field)) {
       $row->tokens($entity, $field, $actionSearchResult->$field);
     }
+    elseif ($cfID = \CRM_Core_BAO_CustomField::getKeyID($field)) {
+      $row->customToken($entity, $cfID, $actionSearchResult->entity_id);
+    }
     else {
       $row->tokens($entity, $field, '');
     }