dongyingla8668 2015-01-02 11:30
浏览 119
已采纳

Woocommerce从产品页面中删除类别

I've recently been working with Rohil_PHPBeginner who has been excellent and solved a big problem i had.

I need to now remove a particular category from the category list on the woo commerce product page.

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

You will see the Title, Artist name (which Rohil_PHPBeginner) solved, Price, Description, Availability, Buy Button, and then categories.

I would like to show all categories except the Artist name as this is now displayed under its own section.

This is the code that is found on the PHP page:

<?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条回答 默认 最新

  • douyabu1528 2015-01-02 12:07
    关注

    Try this :

        <?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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)