/** * Observes: customer_customer_authenticated * * @param type $observer * @return \MailUp_MailUpSync_Model_Observer */ public function leggiUtente($observer) { $model = $observer->getEvent()->getModel(); if (empty($model)) { $model = $model = $observer->getEvent()->getDataObject(); } if (isset($GLOBALS["__sl_mailup_leggi_utente"])) { return $this; } $GLOBALS["__sl_mailup_leggi_utente"] = true; try { $WSDLUrl = 'http://services.mailupnet.it/MailupReport.asmx?WSDL'; $user = Mage::getStoreConfig('mailup_newsletter/mailup/username_ws'); $password = Mage::getStoreConfig('mailup_newsletter/mailup/password_ws'); $headers = array('User' => $user, 'Password' => $password); $header = new SOAPHeader("http://ws.mailupnet.it/", 'Authentication', $headers); $soapclient = new SoapClient($WSDLUrl, array('trace' => 1, 'exceptions' => 1, 'connection_timeout' => 10)); $soapclient->__setSoapHeaders($header); $loginData = array('user' => Mage::getStoreConfig('mailup_newsletter/mailup/username_ws'), 'pwd' => Mage::getStoreConfig('mailup_newsletter/mailup/password_ws'), 'consoleId' => substr(Mage::getStoreConfig('mailup_newsletter/mailup/username_ws'), 1)); $result = get_object_vars($soapclient->LoginFromId($loginData)); $xml = simplexml_load_string($result['LoginFromIdResult']); $errorCode = (string) $xml->errorCode; $errorDescription = (string) $xml->errorDescription; $accessKey = (string) $xml->accessKey; $result = $soapclient->ReportByUser(array("accessKey" => $accessKey, "email" => $model->getEmail(), "listID" => Mage::getStoreConfig('mailup_newsletter/mailup/list'), "messageID" => 0)); $result = get_object_vars($result); $xml = simplexml_load_string($result['ReportByUserResult']); $stato_registrazione = (string) $xml->Canali->Email; if (Mage::getStoreConfig('mailup_newsletter/mailup/enable_log')) { Mage::log("stato registrazione: " . $stato_registrazione); } if ($stato_registrazione) { // Ensure that before_save does not fire $this->_authenticationCalled[$model->getEmail()] = true; // Set subscription based on returned $stato_registrazione switch (strtolower($stato_registrazione)) { case "iscritto": Mage::getModel('newsletter/subscriber')->loadByEmail($model->getEmail())->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED)->save(); $model->setIsSubscribed(1); $model->save(); break; case "in attesa": Mage::getModel('newsletter/subscriber')->loadByEmail($model->getEmail())->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNCONFIRMED)->save(); Mage::getSingleton('core/session')->addNotice(Mage::helper("mailup")->__("Your subscription is waiting for confirmation")); break; default: Mage::getModel('newsletter/subscriber')->loadByEmail($model->getEmail())->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED)->save(); $model->setIsSubscribed(0); $model->save(); } } } catch (Exception $e) { Mage::logException($e); } return $this; }