Ultimate Member 플러그인에서 로그인 후 현재 페이지로 리디렉션시키기

14

Ultimate Member 플러그인에서 로그인 후 현재 페이지(로그인 페이지로 이동하기 전 페이지)로 리디렉션시키기

Ultimate Member는 워드프레스 프로필 및 멤버십 플러그인으로 현재 8만 개 이상의 사이트에 설치되어 사용되고 있습니다. 무료 멤버십 플러그인으로 WP-Members가 유명하지만 최근에는 Ultimate Member도 많이 사용되는 것 같습니다.

Ultimate Member는 무료 멤버십 플러그인이지만 (유료) 인스텐션을 통해 기능을 확장할 수 있습니다.

이 플러그인을 설치하고 활성화하면 다음과 같은 7개 페이지가 강제로 생성되고 삭제할 수 없게 됩니다.

  • Register (회원가입)
  • Login (로그인)
  • User (사용자)
  • Members (회원)
  • Account (계정)
  • Logout (로그아웃)
  • Password Reset (비밀번호 초기화)

워드프레스 관리자 페이지에서 Ultimate Member > User Roles에서 회원이 회원가입하거나 로그인할 때 이동할 URL을 지정할 수 있습니다.


특히 Login Options에서 Action to be taken after login으로 다음과 같은 옵션을 지정할 수 있습니다.

  • Redirect to profile (프로필 페이지로 이동)
  • Redirect to URL (특정 URL로 이동)
  • Refresh active page (활성 페이지 새로 고침)
  • Redirect to WordPress Admin (워드프레스 관리자 페이지로 이동)

이 중에서 Refresh active page를 선택하면 Account 페이지로 이동하게 됩니다. 아마 대부분의 사용자들이 이 옵션을 로그인 페이지로 진입하기 직전의 페이지로 이동하지 않을까 예상했을 것입니다.

만약 로그인 링크를 누르기 전에 있었던 페이지로 이동하려는 경우에는 다음과 같은 코드를 사용할 수 있습니다.

// Add Login and Logout menu items to menu whose menu name (theme_location) is 'primary'
// Redirects to current page after login/logout

add_filter( 'wp_nav_menu_items', 'wti_loginout_menu_link', 10, 2 );

function wti_loginout_menu_link( $items, $args ) {
if ($args->theme_location == 'primary') {
if (is_user_logged_in()) {
$items .= '<li class="right"><a href="'. wp_logout_url( get_permalink() ) .'">Logout</a></li>'; // 로그아웃
} else {
$items .= '<li class="right"><a href="'. wp_login_url(get_permalink()) .'">Login</a></li>'; // 로그인
}
}
return $items;
}

위의 코드에서 theme_location은 적절히 수정하도록 합니다.

이 코드를 적용하면 로그인/로그아웃 후 현재 페이지를 벗어나지 않게 됩니다. 테마에 따라 잘 작동하지 않을 수도 있습니다. 저는 아바다 테마에서 테스트해보니 잘 작동하네요.

참고:

Related Posts