wc_change_term_counts( array $terms, string|array $taxonomies )
Overrides the original term count for product categories and tags with the product count.
Description Description
that takes catalog visibility into account.
Parameters Parameters
- $terms
-
(Required) List of terms.
- $taxonomies
-
(Required) Single taxonomy or list of taxonomies.
Return Return
(array)
Source Source
File: includes/wc-term-functions.php
function wc_change_term_counts( $terms, $taxonomies ) { if ( is_admin() || is_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 = $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; }