안녕하세요~^^
저 역시 캐시를 비워야만 로그인 화면이 다시 뜨는 것을 확인했습니다.
그런데 코스모스팜 회원관리 플러그인의 문제라고 판단되지는 않습니다.
말씀하신 것처럼 캐시나 쿠키 관련해서 뭔가 다른 기능이 적용되어 있어 보입니다.
회원관리 플러그인에는 캐시 기능이 없기 때문입니다.
다른 플러그인을 하나씩 비활성화해서 테스트해보시고,
다른 테마에서는 어떻게 동작하는지도 확인을 해서 원인을 찾아보셔야 할 듯합니다.
원인을 찾게 되면 해결책도 수월하게 찾을 수 있을 듯합니다.
고맙습니다.
안녕하세요~^^
코드 위치는 다음과 같습니다.
/wp-content/plugins/cosmosfarm-members/class/Cosmosfarm_Members_Page_Builder.class.php
Cosmosfarm_Members_Page_Builder.class.php 파일에서 아래 코드를 찾아주세요.
public function shortcode_login_form($atts=array()){
global $wpmem;
if(is_user_logged_in()){
$layout = apply_filters('cosmosfarm_members_login_form_user_logged_in', '');
}
else{
$layout = do_shortcode('[wpmem_form login]');
}
if(isset($atts['raw_print']) && $atts['raw_print']){
$raw_print_index = Cosmosfarm_Members_Page_Builder::$raw_print_index++;
echo '<div data-target="cosmosfarm_members_raw_print_' . $raw_print_index . '" class="cosmosfarm_members_raw_content">' . $layout. '</div>';
return '<div id="cosmosfarm_members_raw_print_' . $raw_print_index . '" class="cosmosfarm_members_raw_print"></div>';
}
return $layout;
}
그리고 아래 코드도 확인 해보세요.
public function form_layout($form, $action){
global $cosmosfarm_members_skin;
if($action == 'login'){
$form = $cosmosfarm_members_skin->login_form($form, $action);
}
else if($action == 'pwdchange'){
$form = $cosmosfarm_members_skin->change_password_form($form, $action);
}
return $form;
}
그리고 Cosmosfarm_Members_Skin.class.php 파일에서 아래 코드를 찾아주세요.
public function login_form($layout, $action){
global $post;
$option = get_cosmosfarm_members_option();
$redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : '';
if(!$redirect_to && $post->ID == $option->login_page_id){
$redirect_to = home_url();
}
else if(!$redirect_to){
$redirect_to = get_permalink();
}
$redirect_to = apply_filters('cosmosfarm_members_login_redirect_to', $redirect_to);
$login_action_url = remove_query_arg(array('verify_email_confirm', 'register_success', 'login_timeout'));
if(file_exists(get_stylesheet_directory() . '/cosmosfarm-members/login-form.php')){
$skin_path = get_stylesheet_directory_uri() . '/cosmosfarm-members';
$file_path = get_stylesheet_directory() . '/cosmosfarm-members/login-form.php';
}
else{
$skin_path = COSMOSFARM_MEMBERS_URL . "/skin/{$option->skin}";
$file_path = COSMOSFARM_MEMBERS_DIR_PATH . "/skin/{$option->skin}/login-form.php";
}
$file_path = apply_filters('cosmosfarm_members_template_login_form', $file_path, $action);
if(file_exists($file_path)){
ob_start();
include $file_path;
$layout = ob_get_clean();
}
return $layout;
}
메뉴 링크 관련해서는
/wp-content/plugins/cosmosfarm-members/class/Cosmosfarm_Members.class.php 파일에서 아래 코드를 찾아주세요.
public function nav_menu_items($items, $menu, $args){
if(!is_admin()){
if(get_cosmosfarm_menu_add_login() && in_array($menu->slug, get_cosmosfarm_login_menus())){
$profile_url = get_cosmosfarm_members_profile_url();
$menu_items['login'] = array('title'=>__('Log In', 'cosmosfarm-members'), 'url'=>get_cosmosfarm_members_login_url(), 'order'=>1, 'classes'=>'cosmosfarm-members-login');
$menu_items['logout'] = array('title'=>__('Log Out', 'cosmosfarm-members'), 'url'=>get_cosmosfarm_members_logout_url(), 'order'=>1, 'classes'=>'cosmosfarm-members-logout');
$menu_items['register'] = array('title'=>__('Register', 'cosmosfarm-members'), 'url'=>wp_registration_url(), 'order'=>2, 'classes'=>'cosmosfarm-members-register');
$menu_items['account'] = array('title'=>__('Account', 'cosmosfarm-members'), 'url'=>$profile_url, 'order'=>2, 'classes'=>'cosmosfarm-members-account');
$menu_items = apply_filters('cosmosfarm_members_menu_items', $menu_items, $menu, $args);
if(is_user_logged_in()){
if($menu_items['account']['order'] <= $menu_items['logout']['order']){
if($menu_items['account']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['account']);
if($menu_items['logout']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['logout']);
}
else{
if($menu_items['logout']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['logout']);
if($menu_items['account']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['account']);
}
}
else{
if($menu_items['register']['order'] <= $menu_items['login']['order']){
if($menu_items['register']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['register']);
if($menu_items['login']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['login']);
}
else{
if($menu_items['login']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['login']);
if($menu_items['register']['url']) $items[] = cosmosfarm_members_menu_item($menu_items['register']);
}
}
}
}
return $items;
}
고맙습니다.
다른 테마에서도 확인해보세요.
다른 테마에서 정상 동작한다면 지금 사용하시는 테마와 뭔가 충돌이 있는 듯합니다.
고맙습니다.
위 문제는 wp_config.php 설정을 바꾸니 해결되었습니다.