wc_change_term_counts()WC 1.0

Overrides the original term count for product categories and tags with the product count. that takes catalog visibility into account.

Хуки из функции

Возвращает

Массив.

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

wc_change_term_counts( $terms, $taxonomies );
$terms(массив) (обязательный)
List of terms.
$taxonomies(строка|массив) (обязательный)
Single taxonomy or list of taxonomies.

Код wc_change_term_counts() WC 9.4.2

function wc_change_term_counts( $terms, $taxonomies ) {
	if ( is_admin() || wp_doing_ajax() ) {
		return $terms;
	}

	if ( ! isset( $taxonomies[0] ) || ! in_array( $taxonomies[0], apply_filters( 'woocommerce_change_term_counts', array( 'product_cat', 'product_tag' ) ), true ) ) {
		return $terms;
	}

	$o_term_counts = get_transient( 'wc_term_counts' );
	$term_counts   = false === $o_term_counts ? array() : $o_term_counts;

	foreach ( $terms as &$term ) {
		if ( is_object( $term ) ) {
			$term_counts[ $term->term_id ] =
				isset( $term_counts[ $term->term_id ] ) ?
					$term_counts[ $term->term_id ] :
					get_term_meta( $term->term_id, 'product_count_' . $taxonomies[0], true );

			if ( '' !== $term_counts[ $term->term_id ] ) {
				$term->count = absint( $term_counts[ $term->term_id ] );
			}
		}
	}

	// Update transient.
	if ( $term_counts !== $o_term_counts ) {
		set_transient( 'wc_term_counts', $term_counts, DAY_IN_SECONDS * 30 );
	}

	return $terms;
}