Filter Featured Products in WooCommerce

Home » Snippets » Filter Featured Products in WooCommerce
0

Created with:

Visibility: 

public

Creator: Simon Harper

Customize with WPTurbo AI
X

Add Snippet To Project

New Project
Add To Existing Project
					<?php
/**
 * Filter products by type
 *
 * @access public
 * @return void
 */
function srhdesign_filter_products_by_featured_status() {
    
    global $typenow;
    
    $output = ''; // define variable 
    if ( 'product' === $typenow  ) {
        
        $output .= '<select name="featured_status" id="dropdown_featured_status">';
        $output .= '<option value="" selected="selected">' . esc_html__( 'Filter by Featured', 'woocommerce' ) . '</option>';
        
        $output .= '<option value="featured"';
        if ( isset( $_GET['featured_status'] ) && 'featured' === sanitize_text_field( $_GET['featured_status'] ) ) {
            $output .= ' selected="selected"';
        }
        $output .= '>' . esc_html__( 'Featured', 'woocommerce' ) . '</option>';
        
        $output .= '<option value="normal"';
        if ( isset( $_GET['featured_status'] ) && 'normal' === sanitize_text_field( $_GET['featured_status'] ) ) {
            $output .= ' selected="selected"';
        }
        $output .= '>' . esc_html__( 'Not Featured', 'woocommerce' ) . '</option>';
        
        $output .= '</select>';

        echo $output;
    }
}

add_action( 'restrict_manage_posts', 'srhdesign_filter_products_by_featured_status' );

/**
 * Filter the products in admin based on options
 *
 * @access public
 * @param mixed $query
 * @return void
 */
function srhdesign_featured_products_admin_filter_query( $query ) {
    
    global $typenow;
    
    if ( 'product' === $typenow ) {
        
        if ( ! empty( $_GET['featured_status'] ) ) {
            $featured_status = sanitize_text_field( $_GET['featured_status'] );

            if ( 'featured' === $featured_status ) {
                $query->query_vars['tax_query'][] = array(
                    'taxonomy' => 'product_visibility',
                    'field' => 'slug',
                    'terms' => 'featured',
                );
            } elseif ( 'normal' === $featured_status ) {
                $query->query_vars['tax_query'][] = array(
                    'taxonomy' => 'product_visibility',
                    'field' => 'slug',
                    'terms' => array( 'featured' ),
                    'operator' => 'NOT IN',
                );
            }
        }
    }
}

add_action( 'parse_query', 'srhdesign_featured_products_admin_filter_query' );
				

Allows you to filter the Featured Products in the WooCommerce Product Admin screen.

Register an account to save your snippets or go Pro to get more features.