/** * Sends email notifications * * @param string $code Email message type * @param Newscoop\Entity\User $user User object * @param PaywallBundle\Entity\UserSubscription $userSubscription User's subscription */ public function sendNotification($code, array $recipients = array(), array $data = array()) { if ($this->systemPreferences->PaywallEmailNotifyEnabled != '1') { return; } $now = new \DateTime('now'); $smarty = $this->templatesService->getSmarty(); $smarty->assign('user', new \MetaUser($data['user'])); $smarty->assign('userSubscription', new MetaSubscription($data['subscription'])); try { $message = $this->loadProperMessageTemplateBy($code); } catch (\Exception $e) { throw new \Exception($e->getMessage()); } $recipients = !empty($recipients) ? $recipients : $this->systemPreferences->PaywallMembershipNotifyEmail; $this->emailService->send($this->placeholdersService->get('subject'), $message, $recipients, $this->systemPreferences->PaywallMembershipNotifyFromEmail); }