$cart_item = $woocommerce->cart->get_cart();
J'ai le code ci-dessus.
si je lance print_r sur cart_item, j'obtiens un tableau multidimensionnel:
Array( [a6292668b36ef412fa3c4102d1311a62] => Array ( [product_id] => 6803
Comment puis-je obtenir le product_id uniquement?
J'ai essayé $ test = $cart_item['data'];
print_r($test);
Ça n'a pas marché.
Pour obtenir le product ID
de chaque article du panier dans la boucle foreach (pour un produit simple):
foreach( WC()->cart->get_cart() as $cart_item ){
$product_id = $cart_item['product_id'];
}
S'il s'agit d'un produit variable, pour obtenir le variation ID
:
foreach( WC()->cart->get_cart() as $cart_item ){
$variation_id = $cart_item['variation_id'];
}
Ou dans les deux cas (où$cart_item['data']
est leWC_Product
Objet dans Woocommerce 3+):
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
}
}
Mise à jour: Utilisation de l'ID produit en dehors de la boucle
1) Briser la boucle (Juste pour obtenir le premier ID d'article (ID de produit) du panier):
foreach( WC()->cart->get_cart() as $cart_item ){
$product_id = $cart_item['product_id'];
break;
}
Vous pouvez utiliser directement la variable $product_id
Du premier article du panier.
2) Utilisation d'un tableau d'ID de produit (un pour chaque article dans le panier).
$products_ids_array = array();
foreach( WC()->cart->get_cart() as $cart_item ){
$products_ids_array[] = $cart_item['product_id'];
}
$products_ids_array[0];
$products_ids_array[1];
etc…Pour vérifier les catégories de produits ou les balises de produits dans l'article du panier, utilisez WordPress has_term()
comme:
foreach( WC()->cart->get_cart() as $cart_item ){
// For product categories (term IDs, term slugs or term names)
if( has_term( array('clothing','music'), 'product_cat', $cart_item['product_id'] ) ) {
// DO SOMETHING
}
// For product Tags (term IDs, term slugs or term names)
if( has_term( array('clothing','music'), 'product_tag', $cart_item['product_id'] ) ) {
// DO SOMETHING ELSE
}
}
Nous utilisons toujours
$cart_item['product_id']
Car nous obtenons le produit variable parent lorsqu'un article du panier est une variation de produit.Les variations de produits ne gèrent aucune taxonomie personnalisée en tant que catégories de produits et étiquettes de produits