Redirect logged in users from a specific page to Woocommerce my account page

♀尐吖头ヾ 提交于 2021-02-08 09:33:05

问题


In Woocommerce I am trying to find a solution for checking if a user is logged in on custom page and if so, redirect user to "My Account" page.

Any help on this is appreciated.


回答1:


Try the following, where you will replace 'some-page' by your real page ID, slug or name. The code will redirect for a defined specific page logged in users to the my account page:

add_action('template_redirect', 'specific_logged_in_redirect');
function specific_logged_in_redirect() {
    if ( is_page('some-page') && is_user_logged_in() ) {
        wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
        exit();
    }
}

Code goes in function.php file of your active child theme (or active theme). Tested and works.


For 2 pages you will use: is_page( array( 'some-page', 'some-other' ) )




回答2:


You should use an $_SESSION. This help you to validate if the user log on in the page.

if(isset($_SESSION['UserID'])){
    header('Location: [url]');
}



回答3:


With Wordpress :

    $current_user = wp_get_current_user();
    if ( 0 != $current_user->ID ) {
        $template = get_page_template_slug($post->ID);
        if($template == "your_custom_template_name"){
             wp_redirect( wp_login_url() )    
        }   
    }


来源:https://stackoverflow.com/questions/51886082/redirect-logged-in-users-from-a-specific-page-to-woocommerce-my-account-page

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!