/**
  * Renders the google analytics tracking code.
  *
  * @return string
  */
 public function getGoogleTracking()
 {
     /** @var \Ekyna\Bundle\GoogleBundle\Model\TrackingCode $trackingCode */
     $trackingCode = $this->settingManager->getParameter('google.tracking_code');
     if (!$this->debug && 0 < strlen($trackingCode->getPropertyId())) {
         $domain = $trackingCode->getDomain();
         if (0 === strlen($domain)) {
             $domain = 'auto';
         }
         if (in_array($trackingCode->getDomain(), ['none', 'auto'])) {
             $domain = sprintf("'%s'", $domain);
         } else {
             $domain = sprintf("{'cookieDomain': '%s'}", $domain);
         }
         return sprintf(self::GA_TRACKING_CODE, $trackingCode->getPropertyId(), $domain);
     }
     return '';
 }
 /**
  * Sends the "call user for payment" email.
  *
  * @param UserInterface $user
  * @return bool
  */
 public function sendCallUserForPayment(UserInterface $user)
 {
     /** @var \Ekyna\Bundle\SubscriptionBundle\Model\SubscriptionInterface[] $subscriptions */
     $subscriptions = $this->getSubscriptionRepository()->findByUserAndPaymentRequired($user);
     if (empty($subscriptions)) {
         return true;
     }
     $fromEmail = $this->settings->getParameter('notification.from_email');
     $fromName = $this->settings->getParameter('notification.from_name');
     $content = $this->templating->render($this->config['templates']['call_user_for_payment'], array('user' => $user, 'subscriptions' => $subscriptions));
     $message = \Swift_Message::newInstance();
     $message->setFrom($fromEmail, $fromName)->setTo($user->getEmail(), (string) $user)->setSubject($this->translator->trans('ekyna_subscription.email.call_user_for_payment.subject'))->setBody($content, 'text/html');
     if (0 < $this->mailer->send($message)) {
         foreach ($subscriptions as $subscription) {
             $subscription->setNotifiedAt(new \DateTime());
             $this->em->persist($subscription);
         }
         $this->em->flush();
         return true;
     }
     return false;
 }