WordPress как на ладони
Шаблоны, плагины и темы для настоящих поклонников Elementor. От TemplateMonster.com wordpress jino
функция не описана

WC_Shortcodes::product_categories() WC 1.0

List all (or limited) product categories.

Это метод класса: WC_Shortcodes

Хуков нет.

Возвращает

Строку.

Использование

$var = WC_Shortcodes::product_categories( $atts );
$atts(массив) (обязательный)
Attributes.

Код WC_Shortcodes::product_categories: woocommerce/includes/class-wc-shortcodes.php VER 3.4.5

<?php
public static function product_categories( $atts ) {
	if ( isset( $atts['number'] ) ) {
		$atts['limit'] = $atts['number'];
	}

	$atts = shortcode_atts( array(
		'limit'      => '-1',
		'orderby'    => 'name',
		'order'      => 'ASC',
		'columns'    => '4',
		'hide_empty' => 1,
		'parent'     => '',
		'ids'        => '',
	), $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'    => $atts['orderby'],
		'order'      => $atts['order'],
		'hide_empty' => $hide_empty,
		'include'    => $ids,
		'pad_counts' => true,
		'child_of'   => $atts['parent'],
	);

	$product_categories = get_terms( 'product_cat', $args );

	if ( '' !== $atts['parent'] ) {
		$product_categories = wp_list_filter( $product_categories, array(
			'parent' => $atts['parent'],
		) );
	}

	if ( $hide_empty ) {
		foreach ( $product_categories as $key => $category ) {
			if ( 0 === $category->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'] );

	wc_set_loop_prop( 'columns', $columns );
	wc_set_loop_prop( 'is_shortcode', true );

	ob_start();

	if ( $product_categories ) {
		woocommerce_product_loop_start();

		foreach ( $product_categories as $category ) {
			wc_get_template( 'content-product_cat.php', array(
				'category' => $category,
			) );
		}

		woocommerce_product_loop_end();
	}

	woocommerce_reset_loop();

	return '<div class="woocommerce columns-' . $columns . '">' . ob_get_clean() . '</div>';
}