我想获取购物车中每个产品的类别,然后我有以下代码:
<?php
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) :
$_product = $cart_item[\'data\'];
$array_cat[] = $_product->get_category_ids();
endforeach;
?>
这段代码可以很好地处理简单乘积,但对于可变乘积,它显示为空。
我试过这个:
<?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;
?>
但在所有这些情况下,它都显示为空。
请你帮忙好吗?
当做
最合适的回答,由SO网友:Alexander 整理而成
好的,我解决了。
在可变产品中$_product->get_id()
不是ID产品,否则是购物车上这些变体的唯一ID。
然后,在这些循环中可以在变量中找到产品的id$cart_item[\'product_id\']
我们可以使用它:
$the_product = wc_get_product( $cart_item[\'product_id\'] );
$array_cat = $the_product->get_category_ids();
问候