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_id:label' => ts('Membership Status'), 'membership_type_id:label' => ts('Membership Type'), ], CRM_Utils_Token::getCustomFieldTokens('Membership') ); } /** * @inheritDoc */ public function checkActive(\Civi\Token\TokenProcessor $processor) { // Extracted from scheduled-reminders code. See the class description. return !empty($processor->context['actionMapping']) && $processor->context['actionMapping']->getEntity() === 'civicrm_membership'; } /** * Alter action schedule query. * * @param \Civi\ActionSchedule\Event\MailingQueryEvent $e */ public function alterActionScheduleQuery(\Civi\ActionSchedule\Event\MailingQueryEvent $e): void { if ($e->mapping->getEntity() !== 'civicrm_membership') { return; } parent::alterActionScheduleQuery($e); $e->query ->select('mt.minimum_fee as ' . $this->getEntityAlias() . 'fee') ->join('mt', '!casMailingJoinType civicrm_membership_type mt ON e.membership_type_id = mt.id'); } /** * @inheritDoc */ public function evaluateToken(\Civi\Token\TokenRow $row, $entity, $field, $prefetch = NULL) { if ($field === 'fee') { $row->tokens($entity, $field, \CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency($this->getFieldValue($row, $field))); } else { parent::evaluateToken($row, $entity, $field, $prefetch); } } }