如果用户在Woocommerce商店页面中,则重定向订阅者

时间:2018-02-08 14:43:30

标签: php wordpress redirect woocommerce user-roles

有很多插件可以实现这一点,但它们不是免费的,所以我实际上试图限制商店,结帐和购物车页面,只为注册为客户的人,我测试此代码在functions.php文件下面:

global $current_user; 
get_currentuserinfo(); 
if (user_can( $current_user, "subscriber" ) && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] == woocommerce_get_page_id('shop') ) {
    wp_redirect( home_url( '/customer-register' ) );
    die();
}

但它不起作用,也许比我想象的更复杂,你有解决方案吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试以下自定义挂钩功能:

add_action( 'template_redirect', 'subscribers_redirection' );
function subscribers_redirection() {
    if ( ( ! is_user_logged_in() || current_user_can( 'subscriber' ) ) 
    && ( is_shop() || is_product_category() || is_product_tag() || is_product() ) ){
        wp_redirect( home_url( '/customer-register' ) );
        exit();
    }
}

代码进入活动子主题(或活动主题)的function.php文件。

它应该有用。

  

您不需要限制购物车和结帐页面,就好像没有产品添加到购物车中一样,不会显示任何内容。