2017-10-28 3 views
0

WooCommerceでは、ミニカートを作成しました。現在のカートで利用可能な数量を取得します。WoCommerceのアイテムIDでカートアイテムの数量を取得

私はこれを試してきたように:

$items = $woocommerce->cart->get_cart(); 

     foreach($items as $item => $values) { 
      $product_id = $values['product_id']; 
      if ($product_id == $id){ 
      $product_qnty = $values['quantity']; 
      } 
      break; 
     } 

は、カート項目によってカートの数量を得るために、任意の単一の機能がありますか?

+0

私は、変数製品(製品バリエーション)も(いくつかのさらなるテストの後で)あまりにも面倒を見るアップデートをメイドしています...もしあなたがこのような答えをupvoteすることもできます。ありがとう。 – LoicTheAztec

答えて

0

最初にwoocommerce template code cart/mini-cart.phpを参照して、公式の関連コードを見つけてください。

注:「アイテムID」は、WC_Ordersアイテムループでのみ使用できますが、「カートアイテムキー」であるWC_Cartでは使用できません。あなたは確かに製品IDについて話しています。あなたは公式テンプレートカートのコードに目を向けるなら/ mini_cartあなたは

だからあなたは常に $product引数で( のようなカスタム関数を構築することができます...代わりに$product_idWC_Productオブジェクトを使用する必要があります、 WC_Productオブジェクト)を使用すると、対応するテンプレートコードまたはカスタムコードで使用することができます

function get_item_qty($product){ 
    foreach(WC()->cart->get_cart() as $cart_item) 
     // for variable products (product varations) 
     $product_id = $product->get_parent_id(); 
     if($product_id == 0 || empty($product_id)) 
      $product_id = $product->get_id(); 

     if ($product_id == $cart_item['product_id']){ 
      return $cart_item['quantity']; 
      break; 
     } 
    return; 
} 

コードは、任意のプラグインファイルでも、あなたのアクティブな子テーマ(またはテーマのfunction.phpファイルになります)か。


USAGE(例):ここが出力$productWC_Productオブジェクト)の量

// Output the quantity based on the $product object 
echo __('Quantity'). ': ' . get_item_qty($product); 

公式ドキュメント:Template Structure + Overriding Templates via a Theme

関連する問題