示例#1
0
 public function recover($visitorId)
 {
     $oldQuote = Mage::getModel('sales/quote')->load($visitorId, 'jirafe_visitor_id');
     if ($oldQuote->getId()) {
         $customerSession = Mage::getSingleton('customer/session');
         if ($oldQuote->getConvertedAt()) {
             $customerSession->addNotice(Mage::helper('foomanjirafe')->__('This basket has been ordered already.'));
             return false;
         }
         if ($oldQuote->getCustomerId()) {
             $customer = Mage::getModel('customer/customer')->load($oldQuote->getCustomerId());
             if ($customerSession->isLoggedIn()) {
                 $customerSession->logout();
             }
             $customerSession->setCustomerAsLoggedIn($customer);
         }
         Mage::getSingleton('checkout/session')->replaceQuote($oldQuote);
         $oldQuote->setJirafeOrigVisitorId($visitorId)->save();
         $siteId = Mage::helper('foomanjirafe')->getStoreConfig('site_id', $oldQuote->getStoreId());
         $jirafePiwikUrl = 'http://' . Mage::getModel('foomanjirafe/jirafe')->getPiwikBaseUrl();
         $piwikTracker = new Fooman_Jirafe_Model_JirafeTracker($siteId, $jirafePiwikUrl);
         $piwikTracker->doRecoveryEmailUpdate($visitorId, 3);
         return true;
     }
     return false;
 }