【问题标题】:Don't allow user role buy option when stock is low woocommerce当库存低 woocommerce 时,不允许用户角色购买选项
【发布时间】:2019-08-14 05:07:39
【问题描述】:

我需要这样的东西:

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

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

【问题讨论】:

    标签: woocommerce user-roles stock


    【解决方案1】:

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

    • 点击添加到购物车按钮获取库存数量和用户角色
    • 检查用户角色是否为批发客户且库存数量是否为必填项
    • 如果是,则阻止将产品添加到购物车

    这是上述逻辑的基本实现。我刚刚检查了代码,发现产品没有添加到购物车中。您可以根据自己的要求构建代码。

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

    【讨论】:

    • 感谢您的回答,但这对我不起作用。添加后,我的购物车无法正常工作,我无法在购物车中添加任何内容:/
    • 好的,让我检查一下。您必须根据您的要求编辑此代码
    • 我刚刚检查过它的工作。仅当用户角色是批发客户并且库存数量大于 7 时,上述代码才有效(块添加到购物车)。我已经检查了店面主题的代码并且它工作正常(产品正在添加到购物车)
    猜你喜欢
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 2021-02-01
    • 2019-05-07
    • 1970-01-01
    • 2015-06-21
    • 2019-12-29
    • 2019-08-12
    相关资源
    最近更新 更多