我在 wordpress woocommerce 网站上工作。我想设置逻辑用户在没有登录的情况下无法看到产品类别或子类别或产品页面,它将重定向到登录页面。 我的代码如下
add_action( 'template_redirect', 'wc_redirect_non_logged_to_login_access');
function wc_redirect_non_logged_to_login_access() {
if ( !is_user_logged_in() && ( is_woocommerce() || is_shop() || is_cart() || is_checkout() ) ) {
wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id')) );
exit();
}
}
但是登录后进入商品分类页面,会跳转到登录页面。我也调试了一下,商品分类页面显示未登录,登录后进入商品分类页面不明白,为什么显示未登录? 请帮助我提供可能的解决方案。 谢谢..
答案 0 :(得分:0)
问题可能与 # wire:click? doesn't send state #
选项有关。
尝试通过 slug (如果页面 slug 是“my-account”):: >
woocommerce_myaccount_page_id
或通过我的帐户页面的 ID:
add_action( 'template_redirect', 'wc_redirect_non_logged_to_login_access');
function wc_redirect_non_logged_to_login_access() {
if ( !is_user_logged_in() && ( is_woocommerce() || is_shop() || is_cart() || is_checkout() ) ) {
wp_redirect( home_url( '/my-account/' ) );
exit();
}
}
代码已经过测试并且可以工作。将它添加到您的活动主题的functions.php。