WC_Admin_List_Table_Products::render_products_type_filter()protectedWC 3.5.0

Render the product type filter for the list table.

Method of the class: WC_Admin_List_Table_Products{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->render_products_type_filter();

Changelog

Since 3.5.0 Introduced.

WC_Admin_List_Table_Products::render_products_type_filter() code WC 8.6.1

protected function render_products_type_filter() {
	$current_product_type = isset( $_REQUEST['product_type'] ) ? wc_clean( wp_unslash( $_REQUEST['product_type'] ) ) : false; // WPCS: input var ok, sanitization ok.
	$output               = '<select name="product_type" id="dropdown_product_type"><option value="">' . esc_html__( 'Filter by product type', 'woocommerce' ) . '</option>';

	foreach ( wc_get_product_types() as $value => $label ) {
		$output .= '<option value="' . esc_attr( $value ) . '" ';
		$output .= selected( $value, $current_product_type, false );
		$output .= '>' . esc_html( $label ) . '</option>';

		if ( 'simple' === $value ) {

			$output .= '<option value="downloadable" ';
			$output .= selected( 'downloadable', $current_product_type, false );
			$output .= '> ' . ( is_rtl() ? '&larr;' : '&rarr;' ) . ' ' . esc_html__( 'Downloadable', 'woocommerce' ) . '</option>';

			$output .= '<option value="virtual" ';
			$output .= selected( 'virtual', $current_product_type, false );
			$output .= '> ' . ( is_rtl() ? '&larr;' : '&rarr;' ) . ' ' . esc_html__( 'Virtual', 'woocommerce' ) . '</option>';
		}
	}

	$output .= '</select>';
	echo $output; // WPCS: XSS ok.
}