WC_Brands_Admin::render_product_brand_filter()publicWC 1.0

Renders either dropdown or a search field for brands depending on the threshold value of woocommerce_product_brand_filter_threshold filter.

Метод класса: WC_Brands_Admin{}

Хуки из метода

Возвращает

null. Ничего (null).

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

$WC_Brands_Admin = new WC_Brands_Admin();
$WC_Brands_Admin->render_product_brand_filter();

Код WC_Brands_Admin::render_product_brand_filter() WC 9.4.2

<?php
public function render_product_brand_filter() {
	// phpcs:disable WordPress.Security.NonceVerification
	$brands_count       = (int) wp_count_terms( 'product_brand' );
	$current_brand_slug = wc_clean( wp_unslash( $_GET['product_brand'] ?? '' ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

	/**
	 * Filter the brands threshold count.
	 *
	 * @since 9.4.0
	 *
	 * @param int $value Threshold.
	 */
	if ( $brands_count <= apply_filters( 'woocommerce_product_brand_filter_threshold', 100 ) ) {
		wc_product_dropdown_categories(
			array(
				'pad_counts'        => true,
				'show_count'        => true,
				'orderby'           => 'name',
				'selected'          => $current_brand_slug,
				'show_option_none'  => __( 'Filter by brand', 'woocommerce' ),
				'option_none_value' => '',
				'value_field'       => 'slug',
				'taxonomy'          => 'product_brand',
				'name'              => 'product_brand',
				'class'             => 'dropdown_product_brand',
			)
		);
	} else {
		$current_brand   = $current_brand_slug ? get_term_by( 'slug', $current_brand_slug, 'product_brand' ) : '';
		$selected_option = '';
		if ( $current_brand_slug && $current_brand ) {
			$selected_option = '<option value="' . esc_attr( $current_brand_slug ) . '" selected="selected">' . esc_html( htmlspecialchars( wp_kses_post( $current_brand->name ) ) ) . '</option>';
		}
		$placeholder = esc_attr__( 'Filter by brand', 'woocommerce' );
		?>
		<select class="wc-brands-search" name="product_brand" data-placeholder="<?php echo $placeholder; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" data-allow_clear="true">
			<?php echo $selected_option; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
		</select>
		<?php
	}
	// phpcs:enable WordPress.Security.NonceVerification
}