Magento客户\注册\成功观察者,获取推荐页面

Magento客户\注册\成功观察者,获取推荐页面,magento,registration,referrer,Magento,Registration,Referrer,我在Magento有一个观察器,每当客户注册新帐户时,它就会触发。我想做的是找出注册是来自结帐,还是来自正常的注册页面。我可以从观察员那里打什么电话来查找注册转介来自内部的哪个页面 您可以在magento注册表中保存最后的X个页面视图,方法是将类似的内容放入每次执行的PHP代码中 $urlHistory = (array) Mage::getSingleton('core/session')->getMyUrlHistory(); while (is_array($urlHistory)

我在Magento有一个观察器,每当客户注册新帐户时,它就会触发。我想做的是找出注册是来自结帐,还是来自正常的注册页面。我可以从观察员那里打什么电话来查找注册转介来自内部的哪个页面

您可以在magento注册表中保存最后的X个页面视图,方法是将类似的内容放入每次执行的PHP代码中

$urlHistory = (array) Mage::getSingleton('core/session')->getMyUrlHistory();
while (is_array($urlHistory) && count($urlHistory) > 3) {
    array_shift($urlHistory);   
}
$urlHistory[] = Mage::helper('core/url')->getCurrentUrl();
Mage::getSingleton('core/session')->setMyUrlHistory($urlHistory);

然后,您可以在您的观察者中分析
Mage::getSingleton('core/session')->getMyUrlHistory()

我曾考虑过在访问两个页面中的一个页面时设置会话变量或cookie值,但我不认为将cookie弄乱是一种逻辑方法,因此会话似乎是一种可行的方法。但奇怪的问题是,从您的示例代码中,我看不到
Mage\u Core\u Model\u Session
中的函数
getMyUrlHistory
,也看不到它的任何父函数(该模型扩展了Mage\u Core\u Model\u Session\u Abstract、Mage\u Core\u Model\u Session\u Abstract\u Varien和Varien\u对象)。您使用的是重写还是核心重写?关键字“魔术方法”。Magento经常使用神奇的setter和getter。嗯,读起来很有趣,我不知道Magento实现了PHP的这一部分。