在购物车和结账页面显示Woocommerce产品类别

4
我试图在购物车和结账页面上为每个添加的产品显示产品类别。
我的PHP知识非常有限,因此最简单易懂的解释将是很好的选择 :)
我已经查看了WooCommerce文档并在Google上搜索了Genesis Connect文档,但没有找到我要找的内容。
使用Genesis Woocommerce Connect以及最新的WooCommerce和WordPress。
不确定接下来该怎么做.. :/
3个回答

15

woocommerce>templates>cart>cart.php是购物车页面。在此页面中,foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item )循环显示您添加到购物车中的产品。循环中的变量$product_id具有您添加到购物车中的每个产品的ID。请将此代码放置在循环内部。

$terms = get_the_terms( $product_id, 'product_cat' );
foreach ($terms as $term) {
   $product_cat = $term->name;
}
echo $product_cat ;

它将显示类别。工作出来然后告诉我 :)


第一次工作得非常完美 :) 速度加1! - Matthew
谢谢,工作完美无误。我已经添加了列表类,允许按类别绑定不同的CSS:<tr class="woocommerce-cart-form__cart-item <?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ), $product_cat; ?>"> - tess hsu

0

另外一个我最近在cart.php中实现的选项是在产品名称部分之后,我想让类别用逗号分隔:

printf( '<br />');
                    
$product_cats = array();
$product_terms = get_the_terms( $product_id, 'product_cat' );

if ( $product_terms && ! is_wp_error( $product_terms ) ) {
foreach ( $product_terms as $term ) {
    $product_cats[] = $term->name;
        }
}

// Output the categories separated by commas
echo implode( ', ', $product_cats );

0

你可以在你的购物车 foreach 循环中简单地添加这个

echo wc_get_product_category_list( $cart_item['product_id'] );

在这里查看购物车循环 WooCommerce Cart Github snipet


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接