2013-10-25 3 views
2

내 WordPress 코드에서 리디렉션 URL을 찾을 수 없지만 등록 양식을 완료 할 때마다 홈 페이지로 다시 리디렉션됩니다. 등록이 완료되면 리디렉션을 변경해야합니다. 다음 코드가 속임수를 사용하는 것을 이해할 수 있지만 아래 코드에서 URL로 리디렉션을 설정하고 대체 할 부분은 어떻게 설정합니까?WP 리디렉션과 혼동 됨

감사

 if ('publish' == $status) { 
     wp_safe_redirect(add_query_arg('updated', 'true', get_permalink($campaign))); 
     exit(); 
    } elseif ('submit' == $action) { 
     $url = isset ($edd_options[ 'submit_page' ]) ? get_permalink($edd_options[ 'submit_page' ]) : get_permalink(); 

     $redirect = apply_filters('atcf_submit_campaign_success_redirect', add_query_arg(array('success' => 'true'), $url)); 
     wp_safe_redirect($redirect); 
     exit(); 
    } else { 
     wp_safe_redirect(add_query_arg('preview', 'true', get_permalink($campaign))); 
     exit(); 
    } 
} 
add_action('template_redirect', 'atcf_shortcode_submit_process'); 

/** 
* Redirect submit page if needed. 
* 
* @since Astoundify Crowdfunding 1.1 
* 
* @return void 
*/ 
function atcf_shortcode_submit_redirect() { 
    global $edd_options, $post; 

    if (! is_a($post, 'WP_Post')) 
     return; 

    if (! is_user_logged_in() && (isset($edd_options[ 'submit_page' ]) && $post->ID == $edd_options[ 'submit_page' ]) && isset ($edd_options[ 'atcf_settings_require_account' ])) { 
     $url = isset ($edd_options[ 'login_page' ]) ? get_permalink($edd_options[ 'login_page' ]) : home_url(); 
     $url = add_query_arg(array('redirect_to' => get_permalink($edd_options[ 'submit_page' ])), $url); 

     $redirect = apply_filters('atcf_require_account_redirect', $url); 

     wp_safe_redirect($redirect); 
     exit(); 
    } 
} 
add_action('template_redirect', 'atcf_shortcode_submit_redirect', 1); 

답변

0

당신은 많은 wp_safe_redirect 기능을했습니다.

일부는 atcf_shortcode_submit_redirect() 외부에 있고 그 중 하나는 내부에 있습니다.

코드에 따라 실제로는인데, 외부의 사람들은 등록 페이지와 관련이 없습니다. 따라서 내부에있는 것을 바꿔야합니다.

그 첫 번째 $url 변수 :

$url = isset ($edd_options[ 'login_page' ]) ? get_permalink($edd_options[ 'login_page' ]) : home_url(); 

홈페이지 링크의 home_url() 될 것 login_page 리디렉션 URL의 이름으로 이전에 저장 아무런 옵션이없는 경우에서 볼 수 있듯이

.

당신이 페이지를 로그인하는 사용자를 리디렉션 할 wan't 경우, 당신은 더 나은 달리에 home_url()을 변경, 해당 옵션을 채우기/이동이 (어딘가 관련 플러그인/템플릿 설정 페이지에서) 옵션을 선택하고 확인을 찾을 것 원하는 로컬 URL (예 : "http://mywebsite/successful-page")

0

전체 코드를보기 전에 플러그인 (또는 테마)이 작동하는지 잘 모르겠지만 조금 이해가됩니다.

wp_safe_redirect는 지정된 URL (문자열)로 리디렉션합니다. 그러니 그걸 시험 해봐. 복사를 계속하고 wp_safe_redirect 매개 변수를 'https://google.com'또는 다른 것으로 변경하십시오. 그런 다음 어떤 조건문이 트리거되어 귀하의 홈페이지로 리디렉션되는지 찾습니다.

atcf_shortcode_submit_redirect 함수가 로그인 페이지에 로그인하지 않은 사용자를 리디렉션한다고 생각하여 문제와 관련이 없습니다.

1

자바 스크립트 document.location을 사용하고 싶습니다. 단지 함수 내에서 하나의 인자를 가진 함수가

function redirect($location) 
{ 
//inside the function place the script code 
} 
<script language="javascript" type="text/javascript"> 
    document.location = "here will be your local variable"; 
</script> 
0

나는 이것이 이전 게시물입니다 알지만, 경우에 다른 사람이 대답을 찾고, 여기에 내가 무슨 짓을했는지 스크립트 태그로 자바 스크립트 코드를 제공 물품.

$ 리디렉션 값을 변경하여 사용자를 프로필 페이지로 리디렉션 할 수있었습니다. 그러나 사용자가 로그 아웃하면 프로필 페이지에 그대로 남아 로그인/레지스터를 해당 페이지에 추가합니다. ???

어쨌든, 나는 단지 2 옵션을 베드로의 로그인 리디렉션을 설치하고 설정합니다 는 "다른 모든 사용자는"당신이 "후 등록 URL은"다음에 올해야 페이지로 설정하고자하는 어떤 페이지에 로그 아웃 URL을 설정 성공적인 등록