Количество товара на складе - Нет товаров в корзине - PullRequest
0 голосов
/ 04 марта 2020

Можно ли в WooCommerce рассчитать количество товаров на складе за вычетом количества товаров в корзине? Так что

products in stock - products_in_cart

Нам это нужно, чтобы мы могли показывать 2-4 дня доставки, если они заказывают больше, чем есть в наличии. Как правило, вы можете использовать get_stock_quantity() для получения количества на складе, но пока не совершена покупка, которая не показывает запас после совершения покупки. Мой текущий code/shortcode такой:

/**
 * Register in or out of stock text shortcode
 *
 * @return null
 */
function imwz_register_in_or_out_stock_text_shortcode() {
  add_shortcode( 'inoroutofstocktext', 'imwz_in_or_out_stock_text_check' );
}
add_action( 'init', 'imwz_register_in_or_out_stock_text_shortcode' );


function imwz_in_or_out_stock_text_check () {
  global $product;

  ob_start();

  $output = '';

  if ( ! $product->managing_stock() && ! $product->is_in_stock() ) {
      echo "2-4 dagen";
  }
  elseif ($product->is_in_stock()) {
    echo "1-2 dagen";
  }

  else {
    echo "nothing to see here";
  }

  $output = ob_get_clean();

  return $output;
}

Это показывает только то, что есть в наличии, и только проданные товары вычитаются и основаны на том, что показывает текст. Но мне нужно проверить, меньше ли в корзине причин, чем на складе, а затем показать более длинную дату доставки.

1 Ответ

1 голос
/ 04 марта 2020

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

global $product;

// Get product id
$product_id = $product->get_id();

// Cart not empty   
if ( WC()->cart->get_cart_contents_count() >= 1 ) {
    // set variable
    $in_cart = false;

    // loop through the shopping cart
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        $product_in_cart = $cart_item['product_id'];

        // Get quantity in cart
        $quantity = $cart_item['quantity'];

        // match
        if ( $product_in_cart === $product_id ) {
            $in_cart = true;
        }
    }

    // product found
    if ( $in_cart ) {
        echo 'product is in het winkelwagentje, met ' . $quantity . 'stuks';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...