提问者:小点点

在购物车和结帐中显示商品类别名称


我使用的是WooCommerce 3.3.3和Visual Products Configurator 4.0

在我的网站上,你可以添加一些产品到购物车,然后进行结帐

  1. 我已经编辑了购物车/购物车。php模板,用于在购物车中显示我的产品类别名称(从第75行到第79行)

密码

<?php
        do_action( 'woocommerce_review_order_before_cart_contents' );

        foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
            $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
            $terms = get_the_terms( $product_id, 'product_cat' );
            foreach ($terms as $term) {
            $product_cat = $term->name;
            }
            echo $product_cat ;

那个位置好吗?

我已经编辑了签出/审核订单。php在签出时显示我的类别名称(从第36行到第41行):

    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
        $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
        $terms = get_the_terms( $product_id, 'product_cat' );
        foreach ($terms as $term) {
        $product_cat = $term->name;
        }
        echo $product_cat ;

我的分类名称显示了两次。我怎样才能解决这个问题?

之后,我可以在“签出”下看到我的类别名称,但它会显示两次。

如何避免这种显示重复?
位置好吗?


共1个答案

匿名用户

要显示产品类别内联链接名称,请使用wc\u get\u product\u category\u list()

关于第1点:

您应该用以下专用函数替换您的代码(更紧凑):

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

对于第2点:

您应该用以下代码替换代码,以避免重复和格式错误的html(在templatecheckout/review order.php文件中):

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    ?>
        <tr class="product-categories">
            <td colspan="2"><?php echo wc_get_product_category_list( $cart_item['product_id'] ); ?></td>
        </tr>
    <?php

不要忘记,您正在html表中添加输出…