如何仅为没有评论的产品隐藏“评价”标签?我找到了这段代码:
add_filter( 'woocommerce_product_tabs', 'delete_tab', 98 );
function delete_tab( $tabs ) {
unset($tabs['reviews']);
return $tabs;
}
但它删除了所有地方的评论,即使是那些有一些评论的产品。
答案 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;
}