로그인 시 특정 페이지로 이동 시키고 싶어서 테마의 functions.php에 코드를 좀 추가해봤는데
다른 페이지에서 로그인 시 abc 페이지로 잘 이동하는데 my-account 페이지에서 로그인 해도 abc 페이지로 이동하더라고요
수정 전)
function login_redirect($redirect_to) {
return site_url('/abc');
}
그래서 아래와 같이 다시 수정해봤는데도 abc 페이지로만 이동 하네요
수정 후)
function login_redirect($redirect_to) {
if ( is_page('my-account')){
return site_url('/my-account');
}
else {
return site_url('/abc/');
}
}
어떻게 수정해야 될까요?
안녕하세요~^^
워드프레스 login_redirect 필터를 활용하신 건지요?
우커머스 woocommerce_login_redirect 필터를 활용하시면
우커머스 쪽에서 로그인 후 이동될 페이지를 설정하실 수 있습니다.
아래의 코드를 활용해보세요.
add_filter('woocommerce_login_redirect', 'woocommerce_login_redirect_20210204', 10, 2);
function woocommerce_login_redirect_20210204($redirect, $user){
// 이곳에 코드를 추가해보세요.
return $redirect;
}
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.
위에 woocommerce_login_redirect 필터에 대한걸 안적었네요
woocommerce_login_redirect 필터를 활용한 코드를 사용해 본적인데
이 코드에는 문제가 없는것일까요?
add_filter('woocommerce_login_redirect', 'login_redirect');
function login_redirect($redirect_to) {
if ( is_page('my-account')){
return site_url('/my-account');
}
else {
return site_url('/abc/');
}
if ( is_page('my-account')) 에 안걸리고 무조건 else의 abc로만 이동해서요..
다른 페이지에서 로그인할 때는 어떤 로그인 폼이 표시되는지요?
is_page('my-account') 코드 대신 is_account_page() 함수를 활용해보시겠어요?
is_account_page() 함수를 활용하시면 현재 페이지가
우커머스 my-account 페이지인지 체크하실 수 있습니다.
고맙습니다.
다른 특정 페이지에서도
my-account 로그인 폼에서 로그인 되도록 리디렉션 해놨습니다.
is_account_page() 로 변경해도 안되네요 음...
특정 페이지 접근 하면 my-account로 보내고 거기서 로그인 화면 나와서
로그인 하면 abc로 보낼려고 한건데
my-account에서 로그인 해도 abc로 가서요...
제가 넣은 전체 코드 입니다.
// 특정 페이지 접근 시 로그인(my-account)로 리디렉션
add_action( 'template_redirect', 'redirect_to_specific_page' );
function redirect_to_specific_page() {
if ( is_page( '특정 페이지' ) && ! is_user_logged_in() ) {
wp_redirect('홈페이지/my-account/', 301 );
exit;
}
}
// redirects for login / logout -- 우커머스 로그인/로그아웃 시 리디렉션
add_filter('woocommerce_login_redirect', 'login_redirect');
function login_redirect($redirect_to) {
if ( is_account_page() ){
return site_url('/my-account');
}
else {
return site_url('/abc/');
}
}
add_action('wp_logout','logout_redirect');
function logout_redirect(){
wp_redirect( home_url() );
exit;
}