web-dev-qa-db-fra.com

WC 3.x Obtenir les catégories de produits variables du panier

Je veux obtenir les catégories de chaque produit dans le panier, alors j'ai ce code:

<?php
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) :
    $_product = $cart_item['data'];
    $array_cat[] = $_product->get_category_ids();
endforeach;
?>

Ce code fonctionne bien avec un produit simple, mais avec un produit variable, il est vide.

J'ai essayé ceci:

<?php
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) :
    $_product = $cart_item['data'];
    $array_cat1 = $_product->get_category_ids();
    $array_cat2 = wc_get_product_terms( $_product->get_id(),'product_cat' );
    $array_cat3 = wp_get_post_terms( $_product->get_id(),'product_cat' );
    $array_cat4 = get_the_terms( $_product->get_id(), 'product_cat' );
    $array_cat5 = get_the_term_list($_product->get_id(), 'product_cat');
endforeach;
?>

mais dans tous ces cas, il apparaît vide.

S'il vous plaît pourriez-vous aider avec ça?

Cordialement

1
Alexander

Ok, je l'ai résolu.

Dans un produit variable, $_product->get_id() n'est pas d'identifiant, le produit est l'identifiant uniquement de ces variations au panier.

Ensuite, dans ces boucles peut trouver l'id du produit dans la variable $cart_item['product_id']

Nous pouvons l'utiliser:

$the_product = wc_get_product( $cart_item['product_id'] );
$array_cat = $the_product->get_category_ids();

Cordialement

1
Alexander