예제 #1
0
 /**
  * Log click to link reference and return click id
  * 
  * @param Mzax_Emarketing_Model_Link $link
  * @param integer $eventId Optional event id
  * @return integer click id
  */
 public function captureClick(Mzax_Emarketing_Model_Link_Reference $reference, $eventId = null)
 {
     if ($reference->getId()) {
         $adapter = $this->_getWriteAdapter();
         $adapter->insert($this->getTable('link_reference_click'), array('reference_id' => $reference->getId(), 'event_id' => $eventId ? $eventId : null, 'clicked_at' => now()));
         $id = $adapter->lastInsertId($this->getTable('link_reference_click'));
     }
     return $id;
 }
예제 #2
0
 /**
  * Every recipient provider gets notified when a link is clicked
  *
  * @param Mzax_Emarketing_Model_Link_Reference $linkReference
  */
 public function linkClicked(Mzax_Emarketing_Model_Link_Reference $linkReference)
 {
     $recipient = $linkReference->getRecipient();
     $this->getSession()->setSubscriberId($recipient->getObjectId());
     /* @var $subscriber Mage_Newsletter_Model_Subscriber */
     $subscriber = Mage::getModel('newsletter/subscriber')->load($recipient->getObjectId());
     if ($subscriber->getCustomerId()) {
         $this->getSession()->setCustomerId($subscriber->getCustomerId());
         $recipient->autologin($subscriber->getCustomerId());
     }
 }
예제 #3
0
 /**
  * Every recipient provider gets notified when a link is clicked
  *
  * @param Mzax_Emarketing_Model_Link_Reference $linkReference
  */
 public function linkClicked(Mzax_Emarketing_Model_Link_Reference $linkReference)
 {
     $recipient = $linkReference->getRecipient();
     $this->getSession()->setQuoteId($recipient->getObjectId());
     /* @var $quote Mage_Sales_Model_Quote */
     $quote = Mage::getModel('sales/quote')->load($recipient->getObjectId());
     if ($quote->getCustomerId()) {
         $this->getSession()->setCustomerId($quote->getCustomerId());
         $recipient->autologin($quote->getCustomerId());
     }
 }
예제 #4
0
 /**
  * Add a click reference to the seesion
  * 
  * This reference is used by the observer to check if any goal events like
  * a order, signup ocurred durring this session
  * 
  * @see Mzax_Emarketing_Model_Observer_Goal
  * @param Mzax_Emarketing_Model_Link_Reference $linkReference
  * @param integer $clickId
  * @return Mzax_Emarketing_Model_Session
  */
 public function addClickReference(Mzax_Emarketing_Model_Link_Reference $linkReference, $clickId)
 {
     $this->setLastLinkReferenceId($linkReference->getId());
     $this->setLastRecipientId($linkReference->getRecipientId());
     $this->setLastAddress($linkReference->getRecipient()->getAddress());
     $this->_lastRecipient = null;
     $clicks = $this->getClickReferences();
     $clicks[] = array('link_reference_id' => (int) $linkReference->getId(), 'recipient_id' => (int) $linkReference->getRecipientId(), 'click_id' => (int) $clickId);
     $this->setData('click_references', $clicks);
     return $this;
 }
예제 #5
0
 /**
  * Every recipient provider gets notified when a link is clicked
  *
  * @param Mzax_Emarketing_Model_Link_Reference $linkReference
  */
 public function linkClicked(Mzax_Emarketing_Model_Link_Reference $linkReference)
 {
     $this->getSession()->setCustomerId($linkReference->getRecipient()->getObjectId());
     $linkReference->getRecipient()->autologin($linkReference->getRecipient()->getObjectId());
 }