title: Remove Woocommerce standard wrapper <div class="woocommerce columns-''>
body: <p>I use custom theme with woocommerce. My main page displays products by categories and they are wrapped in the standard woocommerce block  <code>&lt;div class="woocommerce columns-4"&gt;</code>. I need to remove it. In woocommerce folder i found just a single reference about this block in woocommerce/includes/class-wc-shortcodes.php  </p>
  
  <pre><code>return '&lt;div class="woocommerce columns-' . $columns . '"&gt;' . ob_get_clean() . '&lt;/div&gt;';
  </code></pre>
  
  <p>I tried to change it to <code>return '';</code>,  but still have the same wrapper.
  <br> 
  Is there any option to remove this block?
  <br>Function with <code>&lt;div class="woocommerce columns-' . $columns . '"&gt;' . ob_get_clean() . '&lt;/div&gt;'</code> is below.</p>
  
  <pre><code>public static function product_categories( $atts ) { public static function product_categories( $atts ) {
      global $woocommerce_loop;
  
      if ( isset( $atts['number'] ) ) {
          $atts['limit'] = $atts['number'];
      }
  
      $atts = shortcode_atts( array(
          'limit'      =&gt; '-1',
          'orderby'    =&gt; 'name',
          'order'      =&gt; 'ASC',
          'columns'    =&gt; '4',
          'hide_empty' =&gt; 1,
          'parent'     =&gt; '',
          'ids'        =&gt; '',
      ), $atts, 'product_categories' );
  
      $ids        = array_filter( array_map( 'trim', explode( ',', $atts['ids'] ) ) );
      $hide_empty = ( true === $atts['hide_empty'] || 'true' === $atts['hide_empty'] || 1 === $atts['hide_empty'] || '1' === $atts['hide_empty'] ) ? 1 : 0;
  
      // Get terms and workaround WP bug with parents/pad counts.
      $args = array(
          'orderby'    =&gt; $atts['orderby'],
          'order'      =&gt; $atts['order'],
          'hide_empty' =&gt; $hide_empty,
          'include'    =&gt; $ids,
          'pad_counts' =&gt; true,
          'child_of'   =&gt; $atts['parent'],
      );
  
      $product_categories = get_terms( 'product_cat', $args );
  
      if ( '' !== $atts['parent'] ) {
          $product_categories = wp_list_filter( $product_categories, array(
              'parent' =&gt; $atts['parent'],
          ) );
      }
  
      if ( $hide_empty ) {
          foreach ( $product_categories as $key =&gt; $category ) {
              if ( 0 === $category-&gt;count ) {
                  unset( $product_categories[ $key ] );
              }
          }
      }
  
      $atts['limit'] = '-1' === $atts['limit'] ? null : intval( $atts['limit'] );
      if ( $atts['limit'] ) {
          $product_categories = array_slice( $product_categories, 0, $atts['limit'] );
      }
  
      $columns = absint( $atts['columns'] );
      $woocommerce_loop['columns'] = $columns;
  
      ob_start();
  
      if ( $product_categories ) {
          woocommerce_product_loop_start();
  
          foreach ( $product_categories as $category ) {
              wc_get_template( 'content-product_cat.php', array(
                  'category' =&gt; $category,
              ) );
          }
  
          woocommerce_product_loop_end();
      }
  
      woocommerce_reset_loop();
  
      return '&lt;div class="woocommerce columns-' . $columns . '"&gt;' . ob_get_clean() . '&lt;/div&gt;';
  }
  </code></pre>