Не разрешать опцию покупки ролей пользователей, когда акции находятся на низком уровне - PullRequest
0 голосов
/ 23 марта 2019

Мне нужно что-то вроде этого:

Можно установить, что, когда у нас есть последние 5 штук на складе, какая-то пользовательская роль (оптовая) не может заказать этот продукт?

Например, если мы установим количество в 6 штук, то оптовый покупатель может заказать только 1 штуку, чтобы остаться там минимум 5 штук, и если оно меньше 5 штук, чем оптовый заказчик не может заказать, чем товар?

1 Ответ

0 голосов
/ 24 марта 2019

Я не знаю, выполнимо ли ваше требование или нет. Но у меня есть логика (которая может или не может быть правильным способом)

  • получить количество товара и роль пользователя, нажав кнопку "Добавить в корзину"
  • Проверьте, является ли пользовательская роль оптовым клиентом, и требуется ли количество на складе
  • если да, то блокировать добавление товара в корзину

Это базовая реализация вышеуказанной логики. Я только что проверил код и обнаружил, что товар не добавлен в корзину. Вы можете создать код, соответствующий вашим требованиям.

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