Home > OS >  WooCommerce how to hide "Description" tab if product description is empty
WooCommerce how to hide "Description" tab if product description is empty

Time:11-10

I want to hide the "Description" heading of the WooCommerce product whenever the product's long description field is empty.

enter image description here

I've tried this:

// Remove Empty Tabs
add_filter( 'woocommerce_product_tabs', 'yikes_woo_remove_empty_tabs', 20, 1 );

function yikes_woo_remove_empty_tabs( $tabs ) {

if ( ! empty( $tabs ) ) {
    foreach ( $tabs as $title => $tab ) {
            if ( empty( $tab['content'] ) && strtolower( $tab['title'] ) !== 'description' ) {
                unset( $tabs[ $title ] );
            }
        }
    }
    return $tabs;
}

But that doesn't end up hiding the heading. This heading doesn't appear to be an actual tab.

It looks like this in the rendered source:

<div class="product-description">
    <h3 class="summary-description-title">Description</h3>
</div>

CodePudding user response:

That is a "tab" created by woocommerce. So you could check whether it has content or not, if not, then you could unset it. Like this:

add_filter('woocommerce_product_tabs', 'your_them_manipulating_description_tab', 99);

function your_them_manipulating_description_tab($tabs)
{
  global $product;

  $product_description = $product->get_description();

  if (!$product_description) 
  {
    unset($tabs['description']);
  }
  return $tabs;
}

It works on my end, let me know if you could get it to work too!

  • Related