php 如何从特定用户角色重定向WooCommerce产品的结帐页面

k4emjkb1  于 2022-12-28  发布在  PHP
关注(0)|答案(1)|浏览(108)

我有三个用户角色:一般用户、专业用户和Ultra专业用户
我已经将产品分为一般产品、专业产品和超专业产品
现在我想相应地重定向到特定页面

一般用户无法看到pro和ultra产品的结帐页面
pro不会看到ultra pro的结帐页面
超级专业可以买任何东西

add_action( 'wp', 'hide_product_from_specific_role' );
function hide_product_from_specific_role() {
  if ( is_product() ) {
    $product_id = get_the_ID();
    $user = wp_get_current_user();

    if ( in_array( 'specific_role', (array) $user->roles ) ) {
      wp_redirect( home_url() );
      exit;
    }
  }
}

我如何使用这个代码如果这是不正确的,应该是什么代码?

idfiyjo8

idfiyjo81#

我看到你在寻找什么,我有一个类似的项目,我认为你的代码是缺少一个if语句来检查用户是否登录,我认为你最好留下一个消息来解释为什么用户不能访问instade发送他到主页,所以代码将是这样的:

add_action( 'wp', 'hide_product_from_specific_role' );
function hide_product_from_specific_role() {
  if ( is_product() ) {
$product_id = get_the_ID();  
 if ( is_user_logged_in() && !current_user_can( 'specific_role' ) ) {
      wp_die( 'This product is not available to users with your role.' );
    }
  }
}

相关问题