问题
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