代码之家  ›  专栏  ›  技术社区  ›  g3ar

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

  •  1
  • g3ar  · 技术社区  · 6 年前

    Im使用Woocommerce 3.3.3。和Visual Products Configurator 4.0

    在里面 My web site 您可以将一些产品添加到购物车并继续结帐

    1. 我有 edited cart/cart.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 ;
    

    这个位置可以吗?

    1. 我有 edited checkout/review-order.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 回复  |  直到 6 年前
        1
  •  1
  •   LoicTheAztec    6 年前

    要显示产品类别内联链接名称,请使用 wc_get_product_category_list()

    对于第1点:

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

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

    对于第2点:

    您应该用以下代码替换代码,以避免重复和格式错误的html (在模板上 checkout/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表中添加输出