Magento adding referer param to getLoginPostUrl()



我正在尝试创建一个表单,将登录名尽可能无缝地集成到流程中。

我目前正在使用Mage::helper('customer')->getLoginPostUrl()作为登录表单,如果有更好的东西可以使用,我会全神贯注,它可以工作,但它最终出现在用户仪表板上。

我查找了该功能及其查找if($this->_getRequest()->getParam(self::REFERER_QUERY_PARAM_NAME)){但我不确定如何以函数读取它的方式给它参数。

我注意到如果我使用Mage::helper('customer')->getLoginUrl()它会添加引用器本身,所以我跟踪它并找到它如何将编码的引用器添加到 url 并最终得到这个

<?php echo Mage::helper('customer')->getLoginPostUrl(); ?>referer/<?php echo Mage::helper('core')->urlEncode($this->getUrl("frontname/controller/function")); ?>

这给了我一个看起来像这样的网址

http://www.mysite.com/customer/account/loginPost/referer/aHR0cDovL3J5YW4uZGV2L3VzL2Zyb250bmFtZS9jb250cm9sbGVyL2Z1bmN0aW9uLw,,/

这行得通,但我认为必须有更好的方法。有人知道吗?

如果没有......这对我有用,以防其他人正在寻找同样的东西。

我已经这样做了,希望这对某人也有帮助:

Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode($this->getUrl("frontname/controller/function"))))

我遇到了同样的问题。由于配置中的设置,您的客户被重定向到仪表板。转到

>客户的系统>配置> 客户配置>登录选项

并将"登录后将客户重定向到帐户仪表板"变为"否"。Magento将开始侦听该引荐来源网址参数,并将您的客户放回他们点击"登录"之前的页面。

我知道这是一个古老的线程,可能很晚才提供帮助,但这个问题针对问题排名,也许它会帮助其他人。

我会将弗拉迪斯拉夫-莫萨尔斯基的答案与阿玛迪普-雅利安_current片段结合起来,这样你就只需要一个代码副本就可以使用。

Mage::app()->getFrontController()->getResponse()->setRedirect(
Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode(
Mage::getUrl('', array('_current' => true,'_use_rewrite' => true))
)))
);

我已经这样做了。

第 1 步。

客户>系统>配置> 客户配置>登录选项

并将">登录后将客户重定向到帐户仪表板"变为">"。Magento将开始侦听该引荐来源网址参数,并将您的客户放回他们点击"登录"之前的页面。

第 2 步。

在 header.phtml 中

if(!Mage::helper('customer')->isLoggedIn() and $this->getRequest()->getControllerName() != 'account'){
$referer = Mage::helper('core')->urlEncode(Mage::getUrl('', array('_current' => true,'_use_rewrite' => true)));
Mage::getSingleton('core/session')->setCustomRefererUrl($referer);
}

第 3 步。

在登录表单中

<?php $referer = $this->getRequest()->getParam(Mage_Customer_Helper_Data::REFERER_QUERY_PARAM_NAME); 
echo Mage::helper('core')->urlDecode($referer);
?>
<form action="<?php echo Mage::getUrl('customer/account/loginpost', array('referer' => $referer)); ?>" method="post" id="login-form">

它应该可以正常工作。

最新更新