/** * Returns the JQuery snippet which should be rendered in every the page the campaign popup should appear. * * @param TrackableCampaignInterface $campaign The campaign to be presented * @param int $timeout How many seconds after page load should the popup appear * * @return string */ public function getJsSnippet(TrackableCampaignInterface $campaign, $timeout) { $impressions = $this->impressionsOperator->loadOrCreateFor($campaign); if ($this->impressionsOperator->areImpressionsEnabled() && $impressions->canBeIncreasedToday() || $this->isDebugModeEnabled) { return $this->jsGenerator->getScript($campaign, $timeout); } else { return ''; } }
/** * @param TrackableCampaignInterface $campaign * * @return bool|string */ public function render(TrackableCampaignInterface $campaign) { $impressions = $this->impressionsOperator->loadOrCreateFor($campaign); $template = ''; if ($this->impressionsOperator->areImpressionsEnabled() && $impressions->canBeIncreasedToday()) { $template = $this->newsletterFormTransformer->transform($campaign, $impressions, $campaign->getContent()); } if ($this->transformer) { $content = $this->transformer->transform($campaign, $impressions, $template); } else { $content = $template; } $this->impressionsOperator->increase($impressions); return $content; }