Woocommerce 当股票价格较低时,不允许用户角色购买期权

Woocommerce 当股票价格较低时,不允许用户角色购买期权,woocommerce,user-roles,stock,Woocommerce,User Roles,Stock,我需要这样的东西: 是否可以设置,当我们有最后5件库存时,某些用户角色批发无法订购该产品 例如,如果我们将数量设置为6件,则批发客户只能订购1件,以保持至少5件,如果低于5件,则批发客户不能订购比产品更多的产品?我不知道您的要求是否可行。但我有一个逻辑,可能是正确的,也可能不是 单击“添加到购物车”按钮获取库存数量和用户角色 检查用户角色是否为批发客户,库存数量是否为必填项 如果是,则阻止将产品添加到购物车 这是上述逻辑的基本实现。我刚刚检查了代码,发现产品没有添加到购物车。您可以基于代码进行构

我需要这样的东西:

是否可以设置,当我们有最后5件库存时,某些用户角色批发无法订购该产品


例如,如果我们将数量设置为6件,则批发客户只能订购1件,以保持至少5件,如果低于5件,则批发客户不能订购比产品更多的产品?

我不知道您的要求是否可行。但我有一个逻辑,可能是正确的,也可能不是

单击“添加到购物车”按钮获取库存数量和用户角色 检查用户角色是否为批发客户,库存数量是否为必填项 如果是,则阻止将产品添加到购物车 这是上述逻辑的基本实现。我刚刚检查了代码,发现产品没有添加到购物车。您可以基于代码进行构建以满足您的需求

function stock_quantity_validation($valid, $product_id, $quantity){

  $qty = 7; // Your required stock quantity
  if( is_user_logged_in() ) {
    $user = wp_get_current_user();
    $roles = ( array ) $user->roles;
    if ( in_array( 'wholesale_customer', $roles ) ) {
      $stock = get_post_meta( $product_id, '_stock', true ); // Getting stock quantity of product
      if($stock < $qty){
        $valid = false;
      }
    }
  }
  return $valid;

}
add_filter('woocommerce_add_to_cart_validation','stock_quantity_validation', 10, 3);

谢谢你的回答,但这对我不起作用。添加此项后,我的购物车不工作,我无法添加任何内容。购物车:/ok,让我检查一下。您必须根据您的要求编辑此代码。我刚刚检查了它的工作原理。仅当用户角色为批发客户且库存量大于7时,上述代码才会阻止添加到购物车。我已经检查了店面主题的代码,它的工作良好的产品被添加到购物车