programing

워드 프레스 로그인 후 참조 페이지로 리디렉션

muds 2023. 10. 28. 08:20
반응형

워드 프레스 로그인 후 참조 페이지로 리디렉션

참고: Wordpress StackExchange에서 이미 같은 질문을 만들었지만 아무런 답변을 받지 못했습니다!죄송합니다.

사용자 지정 로그인 플러그인이나 맞춤 코드를 사용하지 않습니다.내 페이지들 중 몇몇은 맨 처음에 이 코드를 가지고 있습니다.

<?php
    if(!is_user_logged_in())
        wp_redirect('/login/');
?>

따라서 사용자가 로그인하지 않았을 때 페이지를 볼 수 없습니다.이 페이지들에는 이런 코드가 적혀있습니다.

/wp-content/my-theme/my-account/
/wp-content/my-theme/my-account/world.php
/wp-content/my-theme/my-account/subscription.php
/wp-content/my-theme/my-dashboard.php
/wp-content/my-theme/my-files.php

이제 사용자가 로그인하지 않고 위의 페이지 중 하나로 이동하면 로그인 페이지로 리디렉션되고 사용자가 로그인하면 랜딩됩니다.my-account/페이지입니다.

현재 시나리오를 변경하여 사용자가 어디에서 왔는지 참조 페이지로 리디렉션하도록 하고 싶습니다.저는 다음과 같은 것들을 시도해 보았지만, 전혀 효과가 없었습니다.

A를 사용.HTTP_REFERRER

에서login/형식상, 나는 이 코드 조각을 배치했습니다.

<input type="hidden" name="redirect" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" />

해킹functions.php

에서functions.php, 제가 코드를 넣었습니다.

if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) {
        add_filter('login_redirect', 'my_login_redirect', 10, 3);
        function my_login_redirect() {
                $location = $_SERVER['HTTP_REFERER'];
                wp_safe_redirect($location);
                exit();
        }
}

참조:


저도 이 방법을 시도해 보았는데 실패했습니다.

아무것도 잘 되지 않았습니다.필요하다면 더 자세한 사항을 말씀드릴 수 있어 기쁩니다.미리 감사드립니다.:)


지금까지의 나의 일은...

코드를 이렇게 수정했습니다.

<?php
    if(!is_user_logged_in())
        wp_redirect('/login/?redirect_to=' . $_SERVER["REQUEST_URI"]);
?>

이렇게 하면 로그인 페이지가 다음과 같은 방식으로 렌더링됩니다.

/login.php?redirect_to=/my-account/subscription.php

이 정도면 제가 인증하고 리디렉션하기에 충분합니다.하지만 실제 리디렉션이 발생하는 비트를 찾아야 하고 이 비트를 사용하여 리디렉션하고 싶습니다.redirect_to매개변수!

로그인 프로세스는 AJAX를 통해 처리됩니다.값을 게시하는 함수가 고려되지 않습니다.redirect_to. JS 파일의 다음 코드는 항상 /my-account로 리디렉션됩니다.그래서 이제 AJAX 함수가 돌아오면 다음의 값을 얻을 수 있습니다.redirect_to숨김 필드를 선택한 다음 사용자를 해당 위치로 리디렉션합니다.

window.location = "/my-account/";

언급URL : https://stackoverflow.com/questions/27171650/wordpress-redirect-to-referring-page-after-logging-in

반응형