Я пытаюсь создать форму, которая интегрирует логин в процесс как можно более плавно.
Я использую 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">
Он должен работать нормально.