Magento добавляет параметр referer param в 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")); ?> 

Что дает мне URL-адрес, который выглядит так

 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 начнет прослушивать параметр referrer и вернуть своих клиентов на страницу, на которой они были, прежде чем нажать «Войти».

Я знаю, что это старый поток, и, вероятно, это способ опоздать, но этот вопрос стоит на месте, возможно, это поможет кому-то другому.

Я бы совпадал с ответом _current фрагментом _current от amardeep-aryan, так что вам нужна только одна копия кода для использования.

 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 начнет прослушивать параметр 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"> 

Он должен работать нормально.