subscriber = Repo::user()->get($subscription->getUserId()); $this->subscription = $subscription; } /** * @copydoc Variable::descriptions() */ public static function descriptions(): array { return [ self::SUBSCRIBER_DETAILS => __('emailTemplate.variable.subscription.subscriberDetails'), self::SUBSCRIPTION_SIGNATURE => __('emailTemplate.variable.subscription.subscriptionSignature'), self::EXPIRY_DATE => __('emailTemplate.variable.subscription.expiryDate'), self::MEMBERSHIP => __('emailTemplate.variable.subscription.membership'), ]; } /** * @copydoc Variable::values() */ public function values(string $locale): array { $context = $this->getContext(); return [ self::SUBSCRIBER_DETAILS => PKPString::stripUnsafeHtml($this->subscriber->getSignature($locale) ?? ''), self::SUBSCRIPTION_SIGNATURE => $this->getSubscriptionSignature($context), self::EXPIRY_DATE => $this->subscription->getDateEnd(), self::MEMBERSHIP => htmlspecialchars($this->subscription->getMembership()), ]; } /** * Subscription signature consisting of contact details of the person responsible for subscriptions included in the * context's Subscription Policies form, Subscription Manager section */ protected function getSubscriptionSignature(Journal $context): string { $subscriptionName = htmlspecialchars($context->getData('subscriptionName')); $subscriptionEmail = htmlspecialchars($context->getData('subscriptionEmail')); $subscriptionPhone = htmlspecialchars($context->getData('subscriptionPhone')); $subscriptionMailingAddress = PKPString::stripUnsafeHtml($context->getData('subscriptionMailingAddress')); $subscriptionContactSignature = $subscriptionName; if ($subscriptionMailingAddress != '') { $subscriptionContactSignature .= "\n" . $subscriptionMailingAddress; } if ($subscriptionPhone != '') { $subscriptionContactSignature .= "\n" . __('user.phone') . ': ' . $subscriptionPhone; } return $subscriptionContactSignature . "\n" . __('user.email') . ': ' . $subscriptionEmail; } }