/** * @param EmailSendEvent $event * * @return array */ public function convertUrlsToTokens(EmailSendEvent $event) { if ($event->isInternalSend()) { // Don't convert for previews, example emails, etc return; } $email = $event->getEmail(); $emailId = $email ? $email->getId() : null; $clickthrough = $event->generateClickthrough(); $trackables = $this->parseContentForUrls($event, $emailId); /** * @var string * @var Trackable $trackable */ foreach ($trackables as $token => $trackable) { $url = $trackable instanceof Trackable ? $this->pageTrackableModel->generateTrackableUrl($trackable, $clickthrough) : $this->pageRedirectModel->generateRedirectUrl($trackable, $clickthrough); $event->addToken($token, $url); } }