woocommerce_get_product_subcategories()WC 1.0

Get (and cache) product subcategories.

Returns

array.

Usage

woocommerce_get_product_subcategories( $parent_id );
$parent_id(int)
Get subcategories of this ID.

woocommerce_get_product_subcategories() code WC 11.1.2

function woocommerce_get_product_subcategories( $parent_id = 0 ) {
	$parent_id          = absint( $parent_id );
	$cache_key          = apply_filters( 'woocommerce_get_product_subcategories_cache_key', 'product-category-hierarchy-' . $parent_id, $parent_id );
	$product_categories = $cache_key ? wp_cache_get( $cache_key, 'product_cat' ) : false;

	if ( false === $product_categories ) {
		// NOTE: using child_of instead of parent - this is not ideal but due to a WP bug ( https://core.trac.wordpress.org/ticket/15626 ) pad_counts won't work.
		/**
		 * Filters the arguments used to retrieve product subcategories.
		 *
		 * @since 11.1.0
		 *
		 * @param array $args Array of arguments for get_categories().
		 */
		$args = apply_filters(
			'woocommerce_product_subcategories_args',
			array(
				'parent'       => $parent_id,
				'hide_empty'   => 0,
				'hierarchical' => 1,
				'taxonomy'     => 'product_cat',
				'pad_counts'   => 1,
			)
		);

		$product_categories = get_categories( $args );

		if ( $cache_key && is_array( $args ) && ! empty( $args['taxonomy'] ) ) {
			wp_cache_set( $cache_key, $product_categories, 'product_cat' );
		}
	}

	if ( apply_filters( 'woocommerce_product_subcategories_hide_empty', true ) ) {
		$product_categories = wp_list_filter( $product_categories, array( 'count' => 0 ), 'NOT' );
	}

	return $product_categories;
}