php - when login from english store the website redirect to Arabic store -
i have developed new website english , arabic language using magento cms , had when login english store after logging website redirect arabic store , checked code , cannot find problem , why when logging english redirect arabic store .
public function loginpostaction() { if ($this->_getsession()->isloggedin()) { $this->_redirect('*/*/'); return; } $session = $this->_getsession(); if ($this->getrequest()->ispost()) { $login = $this->getrequest()->getpost('login'); if (!empty($login['username']) && !empty($login['password'])) { try { $session->login($login['username'], $login['password']); if ($session->getcustomer()->getisjustconfirmed()) { $this->_welcomecustomer($session->getcustomer(), true); } } catch (mage_core_exception $e) { switch ($e->getcode()) { case mage_customer_model_customer::exception_email_not_confirmed: $value = mage::helper('customer')->getemailconfirmationurl($login['username']); $message = mage::helper('customer')->__('this account not confirmed. <a href="%s">click here</a> resend confirmation email.', $value); break; case mage_customer_model_customer::exception_invalid_email_or_password: $message = $e->getmessage(); break; default: $message = $e->getmessage(); } $session->adderror($message); $session->setusername($login['username']); } catch (exception $e) { // mage::logexception($e); // pa dss violation: exception log can disclose customer password } } else { $session->adderror($this->__('login , password required.')); } } $this->_loginpostredirect(); } /** * define target url , redirect customer after logging in */ protected function _loginpostredirect() { $session = $this->_getsession(); if (!$session->getbeforeauthurl() || $session->getbeforeauthurl() == mage::getbaseurl()) { // set default url redirect customer $session->setbeforeauthurl(mage::helper('customer')->getaccounturl()); // redirect customer last page visited after logging in if ($session->isloggedin()) { if (!mage::getstoreconfigflag( mage_customer_helper_data::xml_path_customer_startup_redirect_to_dashboard )) { $referer = $this->getrequest()->getparam(mage_customer_helper_data::referer_query_param_name); if ($referer) { $referer = mage::helper('core')->urldecode($referer); if ($this->_isurlinternal($referer)) { $session->setbeforeauthurl($referer); } } } else if ($session->getafterauthurl()) { $session->setbeforeauthurl($session->getafterauthurl(true)); } } else { $session->setbeforeauthurl(mage::helper('customer')->getloginurl()); } } else if ($session->getbeforeauthurl() == mage::helper('customer')->getlogouturl()) { $session->setbeforeauthurl(mage::helper('customer')->getdashboardurl()); } else { if (!$session->getafterauthurl()) { $session->setafterauthurl($session->getbeforeauthurl()); } if ($session->isloggedin()) { $session->setbeforeauthurl($session->getafterauthurl(true)); } } $this->_redirecturl($session->getbeforeauthurl(true)); }
hi can event observer of magento.
use event customer_login
redirection , using setafterauthurl
, work when customer loggin
through customer/account/loginpost
.
config.xml code like:
<global> <models> <magento29859026> <class>stackoverflow_magento29859026_model</class> </magento29859026> </models> </global> <frontend> <events> <customer_login> <!-- identifier of event want catch --> <observers> <customer_login_handler> <!-- identifier of event handler --> <type>singleton</type> <!-- class method call type; valid model, object , singleton --> <class>magento29859026/observer</class> <!-- observers class alias --> <method>redirtoarabic</method> <!-- observer's method called --> </customer_login_handler> </observers> </customer_login> </events> </frontend>
observer code like:
<?php class stackoverflow_magento29859026_model_observer public function redirtoarabic(){ if(mage::app()->getfrontcontroller()->getaction()->getfullactionname()=='customer_account_loginpost'): $arbicurl=mage::getbaseurl().'?___store=your_store_code' $session->setafterauthurl($arbicurl); endif; } }
Comments
Post a Comment