如果为空,请删除Woocommerce审核标签

时间:2015-10-30 09:54:54

标签: wordpress woocommerce

如何仅为没有评论的产品隐藏“评价”标签?我找到了这段代码:

add_filter( 'woocommerce_product_tabs', 'delete_tab', 98 ); function delete_tab( $tabs ) { unset($tabs['reviews']); return $tabs; }

但它删除了所有地方的评论,即使是那些有一些评论的产品。

5 个答案:

答案 0 :(得分:3)

检查:

add_filter( 'woocommerce_product_tabs', 'delete_tab', 98 );
function delete_tab( $tabs ) {

    global $product;
    $id = $product->id;

    $args = array ('post_type' => 'product', 'post_id' => $id);    
    $comments = get_comments( $args );

    if(empty($comments)) {
        unset( $tabs['reviews'] );
    }

    return $tabs;
}

答案 1 :(得分:1)

最简单的方法是将过滤器添加到woocommerce_product_tabs。在其中,可以使用global $product,它是对当前产品的引用。该对象具有一个称为get_review_count的方法:

add_filter('woocommerce_product_tabs', function ($tabs) {
    global $product;

    if ($product && $product->get_review_count() === 0) {
        unset($tabs['reviews']);
    }

    return $tabs;
}, 98);

答案 2 :(得分:0)

这与Dimitar的选项类似,有点短:

add_filter( 'woocommerce_product_tabs', 'delete_tab', 98 );

function delete_tab( $tabs ) {

    if ( ! have_comments() ) {
        unset( $tabs['reviews'] );
    }

    return $tabs;
}

答案 3 :(得分:0)

如何在店面上将其他“标签”碰到底部呢?

答案 4 :(得分:0)

如果没有,请删除Woocommerce描述标签

add_filter( 'woocommerce_product_tabs', 'delete_description_tab', 98 );
function delete_description_tab( $tabs ) {

    global $product;
    $id = $product->id;

    $data = array ('post_type' => 'product', 'post_id' => $id);    
    $description = get_comments( $data );

    if(empty($description)) {
        unset( $tabs['description'] );
    }

    return $tabs;
}