2012-10-18 5 views
3

로그 아웃 후 고객을 magento로 기본 저장보기로 리디렉션 할 수 있습니까? 로그 아웃 중에 다른 저장소보기로 리디렉션합니다.로그 아웃 후 Magento 리디렉션

+1

magento의 기본 'AccountController'를 확장하고 사용자 정의 대상 주소로 logoutAction을 재정의해야합니다. 컨트롤러를 재정의하는 방법에 대한이 대답은 좋은 출발점이 될 것입니다 : http://stackoverflow.com/questions/6980026/override-magento-controller –

+0

'logoutAction'이'logoutSuccessAction'을 순서대로 리디렉션하도록해야한다고 생각합니다 magento가 방문자 컨텍스트 (쿠키)를 다시 초기화하도록합니다. 예를 들어 사용자를 CMS/페이지로 직접 리디렉션하면 마젠타 쿠키가 갱신되지 않으므로 문제가 발생할 수 있습니다. 'logoutAction'보다'logoutSuccessAction' 우선 변경 –

+0

@Bixi 차이점은 무엇입니까? logoutSuccess는 다른 페이지에서 수행하는 쿠키 관점에서 아무것도하지 않습니다. 처음으로 사용자가 홈페이지를 방문하는 것과 같습니다. 또는 나는 무엇인가 놓치고 있냐? – benmarks

답변

5

불행히도 로그 아웃 위치를 조작하기위한 편리한 이벤트 후크가 없습니다.

Mage_Customer_AccountController::logoutAction()

customer_logout 이벤트가 전달 후 응답 오브젝트 ::logoutSuccessAction()에 리다이렉트를 설정하며 PHP 에가 리디렉션 자바 스크립트 PARAM 에코 설정 사용 고객/logout.phtml 템플릿 렌더링있어 대체 JS 기반 리디렉션에 대한 인수를 OOB 가능성없이 전달할 수 있습니다.

나는 깨끗한 솔루션, controller_action_postdispatch_customer_account_logout을 준수 컨트롤러 객체를 잡은 응답 객체의 setRedirectWithCookieCheck() 방법을 사용하여 위치 헤더를 덮어 쓸 수있을 거라고 생각 :

public function logoutRedirect($obs) 
{ 
    $obs->getControllerAction() 
     ->setRedirectWithCookieCheck(/* your URL param(s) */); 
} 
7

나는 우아하지는 않지만 가장 쉬운 방법은 템플릿 파일을 복사하여 자신의 테마 디렉토리에 app/design/frontend/base/default/template/customer/logout.phtml으로 수정하는 것입니다.

특히이 라인 :

<p><?php echo Mage::helper('customer')->__('You have logged out and will be redirected to our homepage in 5 seconds.') ?></p> 
<script type="text/javascript"> 
//<![CDATA[ 
    setTimeout(function(){ location.href = '<?php echo $this->getUrl() ?>'},5000); 
//]]> 
</script> 

URL 심지어 제한 시간을 같이 location.href 수정하여 방금 로그 아웃 한 후 어디서나 사용자를 가리킬 수 있습니다. 예컨대 :

<script type="text/javascript"> 
//<![CDATA[ 
    setTimeout(function(){ location.href = '<?php echo $this->getUrl('*/*/login') ?>'},500); 
//]]> 
</script> 

다시, 우아한 아니지만, 그것은 충분히 빨리 페이지의 빠른 홉 다시 로그인 화면으로, 위의 예에서 다른 URL로 밀어 것으로 리디렉션해야합니다.

+1

downvote의 이유를 공유하는 데 관심이 있으십니까? 이 질문에 대한 정당한 답변입니다. – philwinkle

+0

'*/*/login'은 Magento가'module/controller/action'을 추적하는 방법입니다 - http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/geturl_function_parameters – philwinkle

+0

오, 이런, 죄송합니다. 내 코멘트를 삭제 해요. – poepje

0

이 모형> 관찰자의 다음과 같은 방법을 쓴다.

public function customerLoggedOut(Varien_Event_Observer $observer)  
{  
    $observer->getControllerAction() 
    ->setRedirectWithCookieCheck(CustomUrl);  
} 

Customurl은 로그 아웃 한 후 리디렉션 할 URL입니다.

로그인 한 후 로그 아웃하고 등록한 후 전자 상거래 웹 사이트에 대한 맞춤 URL 리디렉션을위한 완벽한 솔루션을 원한다면. 사용자 지정 리디렉션 확장이 도움이 될 수 있습니다. 확장 기능을 사용하려면 링크를 클릭하십시오. http://www.magentocommerce.com/magento-connect/custom-redirection.html

관련 문제