WooCoomerce:如果没有登录,则重定向到我的帐户并返回结帐

时间:2017-01-17 14:10:59

标签: php wordpress woocommerce

我正在尝试在结帐页面上创建自定义注册链接。这是我使用的片段:

    add_action('woocommerce_checkout_fields', 'add_registration_custom_link');
    function add_registration_custom_link(){
    if(is_checkout()){
    if (!is_user_logged_in()){
    $info_message = apply_filters( 'woocommerce_checkout_login_message', __( 'New customer?', 'woocommerce' ) );
   $info_message .= ‘<a href="http://www.mysite.co.uk?redirect_to=http://www.mysite.co.uk/checkout">’ . __( ‘Click here to Register’, ‘woocommerce’ ) . ‘</a>’;
    wc_print_notice( $info_message, 'notice' );
    }
    }
    }

想法是打印一条消息+链接,提示用户注册/登录(如果尚未注册/登录)。它将替换结帐页面顶部的默认登录表单。我想点击“点击此处注册”链接,将用户重定向到“我的帐户”页面,这样他们就可以登录/注册,然后在成功后将其重定向回结帐。

到目前为止,上述代码无法正常工作,并在页面上产生其他问题(即运费和结算表单中的无效参数)。有任何想法如何使其正常工作?

更新:我找到了这个方便的代码段,并将其添加到我的functions.php文件中:

function woocommerce_custom_redirects() {

    // Case1: Non logged user on checkout page (cart empty or not empty)
    if ( !is_user_logged_in() && is_checkout() )
        wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );


}
add_action('template_redirect', 'woocommerce_custom_redirects');

如果没有登录,则会将用户重定向到“我的帐户”页面。登录/注册后,我需要额外的参数将其重定向回结帐页面。有什么想法吗?

谢谢!

0 个答案:

没有答案