WC 3.x从购物车的变量产品中获取类别

时间:2017-06-21 作者:Alexander

我想获取购物车中每个产品的类别,然后我有以下代码:

<?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;
?>
但在所有这些情况下,它都显示为空。

请你帮忙好吗?

当做

1 个回复
最合适的回答,由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();
问候

结束

相关推荐

Categories' hierarchy in URL

我目前正在处理的网站中的帖子都有多个层次分类。例如:Source - Books -- Moby Dick -- Sherlock Holmes 永久链接设置为/%category%/%postname%/. 然而,一篇文章的URL并不包括所有的子类别——我得到的只是site.com/source/books/*postname*, 尽管这篇文章在来源上没有分类,但只在书籍+白鲸上。有人能帮我找出如何调整这种行为吗?非常感谢。