Woocommerce从产品页面中删除类别

时间:2015-01-02 11:30:09

标签: php wordpress woocommerce

我最近一直在与Rohil_PHPBeginner合作,他一直很出色并解决了我遇到的一个大问题。

我现在需要从woo commerce产品页面的类别列表中删除特定类别。

示例:https://www.artgiftedbygod.co.uk/online-art-shop/jane-brighton/dawn-2/

您将看到标题,艺术家名称(Rohil_PHPBeginner)解决,价格,描述,可用性,购买按钮,然后是类别。

我想显示除艺术家名称以外的所有类别,因为它现在显示在其自己的部分下。

这是PHP页面上的代码:

<?php
/**
* Single Product Meta
*
* @author       WooThemes
* @package  WooCommerce/Templates
* @version     1.6.4
*/

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

global $post, $product;

$cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
$tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );
?>
<div class="product_meta">

<?php do_action( 'woocommerce_product_meta_start' ); ?>

<?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) )         : ?>

    <span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku"     itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span>.    </span>

<?php endif; ?>

<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:',   'Categories:', $cat_count, 'woocommerce' ) . ' ', '.</span>' ); ?>

<?php echo $product->get_tags( ', ', '<span class="tagged_as">' . _n( 'Tag:', 'Tags:', $tag_count,   'woocommerce' ) . ' ', '.</span>' ); ?>

<?php do_action( 'woocommerce_product_meta_end' ); ?>

`

1 个答案:

答案 0 :(得分:2)

试试这个:

    <?php
    /**
     * Single Product Meta
     *
     * @author      WooThemes
     * @package     WooCommerce/Templates
     * @version     1.6.4
     */

    if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

    global $post, $product;

    $cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
    $tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );
    ?>
    <div class="product_meta">

        <?php do_action( 'woocommerce_product_meta_start' ); ?>

        <?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) : ?>

            <span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span>.</span>

        <?php endif; ?>

        <?php

                $cat_array = array();
                $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details

                foreach($term_list as $cat_list)
                {

                    array_push($cat_array, $cat_list->term_id);

                }

                $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array

               $termchildren = get_term_children( '90' , 'product_cat' ); //New Line in Updattion -1

               $final_result = array_diff($cat_array,$termchildren);
               $new_ary = array_values($final_result);
               $final_result_size = sizeof($new_ary); 
               $i=0;$j=0;
                for($i=0;$i<$final_result_size;$i++){

                        $new_cat_id = $new_ary[$i];

                        $cat_url = get_term_link ($new_cat_id, 'product_cat'); //get link of parent ID

                        $term = get_term( $new_cat_id, 'product_cat' ); //Get Name of the parent from the parent ID

                        $name = $term->name; //Store it into an varialbe


                        if($j == 0):
                            echo "Categories: ";
                        endif;
                        echo "<a href='".esc_url($cat_url)."'>".$name."</a>";
                        if($i == ($final_result_size-1)):
                            echo "";
                        else:
                            echo ", ";
                        endif;
                        $j++;
                }

        ?>

        <?php echo $product->get_tags( ', ', '<span class="tagged_as">' . _n( 'Tag:', 'Tags:', $tag_count, 'woocommerce' ) . ' ', '.</span>' ); ?>

        <?php do_action( 'woocommerce_product_meta_end' ); ?>

    </div>