2

我在我的 WordPress 代码中找不到任何重定向 URL,但每次我完成注册表单时,它都会再次重定向到主页。我需要在注册完成后更改重定向。我可以理解以下代码起到了作用,但任何人都可以帮助我如何将重定向设置为从下面的代码到 URL 以及替换哪个部分?

谢谢

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

4 回答 4

0

我知道这是一篇旧帖子,但如果其他人正在寻找答案,这就是我所做的。

通过更改 $redirect 值,我能够成功地将用户重定向到个人资料页面。但是,当用户注销时,它会留在个人资料页面并将登录/注册添加到该页面???

无论如何,我安装了彼得的登录重定向并只设置了 2 个选项:“所有其他用户”将注销 URL 设置为您想要的任何页面“注册后 URL”将其设置为成功注册后应该出现的页面

于 2015-01-07T20:57:58.370 回答
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()您的主页链接。

如果你不想将用户重定向到登录页面,你最好去找到这个选项(在相关插件/模板设置页面的某个地方)并检查/填写该选项,否则将其更改为home_url()你想要的任何本地 URL(例如"http://mywebsite/successful-page")

于 2013-10-25T12:47:05.777 回答
0

我喜欢使用 javascript document.location。只需在函数内编写一个带有单个参数的函数,提供带有脚本标签的 JavaScript 代码

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>
于 2014-12-29T11:01:50.600 回答
0

在查看整个代码之前,我不确定插件(或主题)是否在内部工作,但我有点意思。

wp_safe_redirect 重定向到给定的 url(string)。所以尝试修补那个。保留副本并将 wp_safe_redirect 参数更改为“ https://google.com ”或其他内容。然后你会发现哪个条件语句触发并重定向到你的主页。

我认为 atcf_shortcode_submit_redirect 函数会将未登录的人重定向到登录页面,因此它与您的问题无关。

于 2013-10-25T12:50:24.953 回答