getEntityManager()->getEntity('EmailQueueItem', $queueItemId); $trackingUrl = $this->getEntityManager()->getEntity('CampaignTrackingUrl', $trackingUrlId); if (!$queueItem || !$trackingUrl) { throw new NotFound(); } $target = null; $campaign = null; $targetType = $queueItem->get('targetType'); $targetId = $queueItem->get('targetId'); if ($targetType && $targetId) { $target = $this->getEntityManager()->getEntity($targetType, $targetId); } $campaignId = $trackingUrl->get('campaignId'); if ($campaignId) { $campaign = $this->getEntityManager()->getEntity('Campaign', $campaignId); } if ($campaign && $target) { $campaignService = $this->getServiceFactory()->create('Campaign'); $campaignService->logClicked($campaignId, $queueItemId, $target, $trackingUrl); } ob_clean(); header('Location: ' . $trackingUrl->get('url') . ''); die; } }