setupPaymentUrlVariable($context, $queuedPayment); } protected function setupPaymentUrlVariable(Journal $context, QueuedPayment $queuedPayment) { $request = Application::get()->getRequest(); $dispatcher = $request->getDispatcher(); $this->addData([ static::$queuedPaymentUrl => $dispatcher->url( $request, PKPApplication::ROUTE_PAGE, $context->getPath(), 'payment', 'pay', [$queuedPayment->getId()] ), static::$submissionGuidelinesUrl => $dispatcher->url( $request, Application::ROUTE_PAGE, $context->getPath(), 'about', 'submissions' ), ]); } public static function getDataDescriptions(): array { return array_merge( parent::getDataDescriptions(), [ static::$queuedPaymentUrl => __('emailTemplate.variable.queuedPaymentUrl'), static::$submissionGuidelinesUrl => __('emailTemplate.variable.submissionGuidelinesUrl'), ] ); } protected function addFooter(string $locale): self { $this->footer = $this->renameContextVariables( __('emails.paymentRequestNotification.footer', [], $locale) ); return $this; } /** * Replace email template variables in the locale string, so they correspond to the application, * e.g., contextName => journalName/pressName/serverName */ protected function renameContextVariables(string $footer): string { $map = [ '{$' . PKPContextEmailVariable::CONTEXT_NAME . '}' => '{$' . ContextEmailVariable::CONTEXT_NAME . '}', '{$' . PKPContextEmailVariable::CONTEXT_URL . '}' => '{$' . ContextEmailVariable::CONTEXT_URL . '}', ]; return str_replace(array_keys($map), array_values($map), $footer); } }