I want to redirect customer to last visiting page after loggedin. My code as far looks like: Config.xml
<?xml version="1.0"?>
<config>
<modules>
<Virtua_Vcategory>
<version>1.0.0</version>
</Virtua_Vcategory>
</modules>
<global>
<models>
<virtua_vcategory>
<class>Virtua_Vcategory_Model</class>
</virtua_vcategory>
</models>
<helpers>
<virtua_vcategory>
<class>Virtua_Vcategory_Helper</class>
</virtua_vcategory>
</helpers>
<blocks>
<virtua_vcategory>
<class>Virtua_Vcategory_Block</class>
</virtua_vcategory>
</blocks>
</global>
<frontend>
<events>
<catalog_controller_category_init_after>
<observers>
<virtua_vcategory>
<type>singleton</type>
<class>virtua_vcategory/observer</class>
<method>catalogControllerLoadAfter</method>
</virtua_vcategory>
</observers>
</catalog_controller_category_init_after>
<customer_login>
<observers>
<virtua_vcategory>
<class>virtua_vcategory/observer</class>
<method>customerLogin</method>
</virtua_vcategory>
</observers>
</customer_login>
</events>
</frontend>
</config>
Observer:
<?php
class Virtua_Vcategory_Model_Observer extends Mage_Core_Model_Abstract
{
public function catalogControllerLoadAfter(Varien_Event_Observer $observer)
{
...
if (Mage::getSingleton('customer/session')->isLoggedIn()) {
...
}
else
{
$beforeurl = Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::helper('core/url')->getCurrentUrl());
MAGE::log($beforeurl ); /****first log*****/
$route = 'customer/account/login';
$url = Mage::getUrl($route);
Mage::app()->getResponse()->setRedirect($url);
}
}
public function customerLogin(Varien_Event_Observer $observer)
{
$url = Mage::getSingleton('customer/session')->getBeforeAuthUrl();
MAGE::log($url." after log in"); /*****second log*****/
Mage::app()->getResponse()->setRedirect($url);
}
}
And my first log (in catalogControllerLoadAfter() ) showing properly urlin object, but in second log url is overwritting. How can i fix it?