库存低时,禁止用户角色购买选项

时间:2019-03-23 10:21:34

标签: woocommerce user-roles stock

我需要这样的东西:

可以设置为当我们有最后5个库存时,某些用户角色(批发)无法订购该产品?

例如,如果我们将数量设置为批发数量的6个,那么客户只能订购1个以保持最少5个;如果低于批发数量的5个,则不能订购比产品少的产品?< / p>

1 个答案:

答案 0 :(得分:0)

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

  • 单击“添加到购物车”按钮可获得库存数量和用户角色
  • 检查用户角色是否为批发客户,库存数量是否为必需
  • 如果是,则阻止将产品添加到购物车

这是上述逻辑的基本实现。我刚刚检查了代码,发现产品未添加到购物车。您可以构建代码来满足您的要求。

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);