Esempio n. 1
0
 /**
  * @param               $event
  * @param Lead          $lead
  * @param MauticFactory $factory
  */
 public static function sendEmail($event, Lead $lead, MauticFactory $factory)
 {
     $properties = $event['properties'];
     $emailId = (int) $properties['email'];
     /** @var \Mautic\EmailBundle\Model\EmailModel $model */
     $model = $factory->getModel('email');
     $email = $model->getEntity($emailId);
     //make sure the email still exists and is published
     if ($email != null && $email->isPublished()) {
         $leadFields = $lead->getFields();
         if (isset($leadFields['core']['email']['value']) && $leadFields['core']['email']['value']) {
             $leadCredentials = array('email' => $leadFields['core']['email']['value'], 'id' => $lead->getId(), 'firstname' => $leadFields['core']['firstname']['value'], 'lastname' => $leadFields['core']['lastname']['value']);
             $options = array('source' => array('trigger', $event['id']));
             $model->sendEmail($email, $leadCredentials, $options);
         }
     }
 }
 /**
  * {@inheritDoc}
  */
 public function getFields($ungroup = false)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getFields', array($ungroup));
     return parent::getFields($ungroup);
 }
Esempio n. 3
0
 /**
  * Used by system processes that hook into events that use getCurrentLead()
  *
  * @param Lead $lead
  */
 function setSystemCurrentLead(Lead $lead = null)
 {
     $fields = $lead->getFields();
     if (empty($fields)) {
         $lead->setFields($this->getLeadDetails($lead));
     }
     $this->systemCurrentLead = $lead;
 }
Esempio n. 4
0
 /**
  * Add a do not contact entry for the lead
  *
  * @param Lead   $lead
  * @param string $emailAddress
  * @param string $reason
  * @param bool   $persist
  */
 public function setDoNotContact(Lead $lead, $emailAddress = '', $reason = '', $persist = true)
 {
     if (empty($emailAddress)) {
         $fields = $lead->getFields();
         $emailAddress = $fields['core']['email']['value'];
         if (empty($emailAddress)) {
             return;
         }
     }
     $em = $this->factory->getEntityManager();
     $repo = $em->getRepository('MauticEmailBundle:Email');
     if (!$repo->checkDoNotEmail($emailAddress)) {
         $dnc = new DoNotEmail();
         $dnc->setLead($lead);
         $dnc->setEmailAddress($emailAddress);
         $dnc->setDateAdded(new \DateTime());
         $dnc->setUnsubscribed();
         $dnc->setComments($reason);
         if ($persist) {
             $repo->saveEntity($dnc);
         } else {
             return $dnc;
         }
     }
 }