2013-10-25 3 views
2

Я не смог найти URL-адрес перенаправления в моем коде WordPress, но каждый раз, когда я заполняю регистрационную форму, он снова перенаправляется на домашнюю страницу. Мне нужно изменить перенаправление после завершения регистрации. Я могу понять, что следующий код играет в трюк, но может ли кто-нибудь помочь мне, как я могу настроить перенаправление на URL из приведенного ниже кода и какую часть заменить?Confused with WP redirection

Благодаря

 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(); 

Как вы можете видеть, если нет возможности сохранены до с именем login_page Перенаправление URL будет home_url() это ваш главной странице ссылку.

Если вы wan't перенаправить пользователя на страницу входа в систему, вы бы лучше пойти и найти эту опцию (где-то в соответствующей странице плагинов/настройки шаблона) и чек/заливкой этот вариант, в противном случае изменить home_url() к (например "http://mywebsite/successful-page")

0

Я не уверен, что плагин (или тема) работает внутри, прежде чем увидеть весь код, но я немного понимаю.

wp_safe_redirect перенаправляет на указанный URL-адрес (строка). Поэтому попробуйте поработать над этим. Сохраните копию и измените параметр wp_safe_redirect на «https://google.com» или что-то еще. Затем вы обнаружите, какое условное утверждение запускается и перенаправляется на вашу домашнюю страницу.

Я думаю, что функция atcf_shortcode_submit_redirect перенаправляет пользователей, которые не вошли на страницу входа, поэтому это не имеет отношения к вашей проблеме.

1

Мне нравится использовать документ javascript 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

Я знаю, что это старый пост, но в случае, если кто-то ищет ответ, вот что я сделал.

Я смог успешно перенаправить пользователя на страницу профиля, изменив значение $ redirect. Однако, когда пользователь выйдет из системы, он останется на странице профиля и добавит логин/регистрацию на эту страницу ???

В любом случае, я установил Питер Войти редирект и установить только 2 вариант: «Все другие пользователь» установить выход из системы URL для любой страницы, который вы хотите «Пострегистрационный URL» установить это на страницу, которая должна прийти после успешная регистрация