Php Magento 1-将referer参数添加到getLoginPostUrl()中
我正在尝试创建一个表单,尽可能无缝地将登录集成到流程中 目前,我正在使用Php Magento 1-将referer参数添加到getLoginPostUrl()中,php,magento,magento-1,Php,Magento,Magento 1,我正在尝试创建一个表单,尽可能无缝地将登录集成到流程中 目前,我正在使用Mage::helper('customer')->getLoginPostUrl()作为登录表单,如果有更好的方法可以使用,我洗耳恭听,它可以工作,但最终会出现在用户仪表板上 我查了一下函数,并找到了它 if($this->\u getRequest()->getParam(self::REFERER\u QUERY\u PARAM\u NAME)){ 但我不确定如何以函数将读取它的方式给它param 我注意到,如果我使用
Mage::helper('customer')->getLoginPostUrl()
作为登录表单,如果有更好的方法可以使用,我洗耳恭听,它可以工作,但最终会出现在用户仪表板上
我查了一下函数,并找到了它
if($this->\u getRequest()->getParam(self::REFERER\u QUERY\u PARAM\u NAME)){
但我不确定如何以函数将读取它的方式给它param
我注意到,如果我使用Mage::helper('customer')->getLoginUrl()
,它会添加referer本身,因此我跟踪了它,发现它是如何将编码的referer添加到url的,并以此结束
<?php echo Mage::helper('customer')->getLoginPostUrl(); ?>referer/<?php echo Mage::helper('core')->urlEncode($this->getUrl("frontname/controller/function")); ?>
这是可行的,但我想一定有更好的办法。有人知道吗
如果没有…这对我很有效,以防其他人也在寻找相同的东西。我也有同样的问题。由于配置中的设置,您的客户被重定向到仪表板。转到 系统>配置>客户>客户配置>登录选项 然后将“登录后将客户重定向到帐户仪表板”改为“否”。Magento将开始侦听该Referer参数,并将您的客户返回到他们单击“登录”之前所在的页面
我知道这是一个古老的主题,可能很晚才有帮助,但这个问题是问题的关键,也许它会帮助其他人。我是这样做的,希望这对其他人也有帮助:
Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode($this->getUrl("frontname/controller/function"))))
我是这样做的
第1步。
系统>配置>客户>客户配置>登录选项
然后将“登录后将客户重定向到帐户仪表板”转到“否””。Magento将开始侦听该referrer参数,并将您的客户返回到他们单击“登录”之前所在的页面
第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">
我会将vladislav mosalsky的答案与来自amardeep aryan的\u当前的片段结合起来,这样您只需要一份代码就可以使用
Mage::app()->getFrontController()->getResponse()->setRedirect(
Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode(
Mage::getUrl('', array('_current' => true,'_use_rewrite' => true))
)))
);
我必须在表单中放入什么内部操作属性?它放在哪里?您的代码放在header.phtml中?^我不理解您的问题。您发布的代码必须放在哪里?它放在表单操作中还是需要放在header.phtml中?整个代码段都是为了在PHP点击该代码时重定向,所以在save中的控制器中例如,如果您只是在寻找生成URL的方法,那么只需使用内部两个Mage::getURL调用。
Mage::app()->getFrontController()->getResponse()->setRedirect(
Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode(
Mage::getUrl('', array('_current' => true,'_use_rewrite' => true))
)))
);