2016-12-12 16 views
5
$cart_item = $woocommerce->cart->get_cart(); 

私は上記のコードを持っています。WooCommerceカートに入れるカートの商品ID:

私はcart_itemにしますprint_rを実行する場合、私は、多次元配列を取得:

Array( [a6292668b36ef412fa3c4102d1311a62] => Array  (   [product_id] => 6803 

私は唯一のproduct_idを取得するにはどうすればよいですか?私は$のテストを試してみました

=

print_r($test); 

$cart_item['data'];は動作しませんでした。

答えて

13

(簡単な製品のための)foreachループ内の各カートのアイテムのproduct IDを取得するには:

foreach(WC()->cart->get_cart() as $cart_item){ 
    $product_id = $cart_item['product_id']; 
} 

それは変数製品の場合は、variation IDを取得するには:

foreach(WC()->cart->get_cart() as $cart_item){ 
    $variation_id = $cart_item['variation_id']; 
} 

または両方の場合:

foreach(WC()->cart->get_cart() as $cart_item){ 
    // compatibility with WC +3 
    if(version_compare(WC_VERSION, '3.0', '<')){ 
     $product_id = $cart_item['data']->id; // Before version 3.0 
    } else { 
     $product_id = $cart_item['data']->get_id(); // For version 3 or more 
    } 
} 

更新:

:ループ

1)ループを破る外のプロダクトIDを使用しては、カートの)(ただ、最初の項目のID(プロダクトIDを取得します)

foreach(WC()->cart->get_cart() as $cart_item){ 
    $product_id = $cart_item['product_id']; 
    break; 
} 

$product_idを直接カートに入れることができます。製品ID のアレイ(カート内の各項目に対して1つ)を使用して


2。

$products_ids_array = array(); 

foreach(WC()->cart->get_cart() as $cart_item){ 
    $products_ids_array[] = $cart_item['product_id']; 
} 
  • 第1項目のプロダクトIDを取得するには、次の第2項目のプロダクトIDを取得するには$products_ids_array[0];
  • を:$products_ids_array[1];などを...
+0

それがためのループである必要はありません? –

+0

forループの外側に$ product_idを使用できますか? –

+1

@ Kevin.aはい、それはループの中にある必要があります。なぜなら、あなたはカート内に複数のアイテムを持つことができるからです。カートのキーアイテムでこれを取得するのはかなり複雑です( 'Array([a6292668b36ef412fa3c4102d1311a62 ]))はい、あなたはループの外でこのIDを使うことができます** **私の更新を見てください**。 – LoicTheAztec

関連する問題