get( 'post_type' ) !== 'ac_product' ) { return false; } $sql = 'SELECT DISTINCT meta_key FROM ' . $wpdb->postmeta . ' ORDER BY 1'; $fields = $wpdb->get_results( $sql, ARRAY_N ); $get_param = isset( $_GET['ac_filter_by_meta'] ) ? sanitize_text_field( $_GET['ac_filter_by_meta'] ) : ''; ?> 'ac_product_tag', 'hide_empty' => false, ) ); if ( ! $tags_obj instanceof WP_Error ) { foreach ( $tags_obj as $value ) { $tags[] = $value->name; } } $tax_query = array( array( 'taxonomy' => 'ac_product_tag', 'field' => 'slug', 'terms' => $tags, 'operator' => 'IN', ) ); $query->set( 'tax_query', $tax_query ); } elseif ( $_GET['ac_filter_by_meta'] === 'manufacturer' ) { $pattern = '"manufacturer";s:[^0][\d]*'; $mata_query = array( array( 'key' => 'ac-product-details', 'value' => $pattern, 'compare' => 'REGEXP' ) ); $query->set( 'meta_query', $mata_query ); } elseif ( $_GET['ac_filter_by_meta'] === 'sku' ) { $pattern = '"sku";s:[^0][\d]*'; $mata_query = array( array( 'key' => 'ac-product-details', 'value' => $pattern, 'compare' => 'REGEXP' ) ); $query->set( 'meta_query', $mata_query ); } elseif ( $_GET['ac_filter_by_meta'] === 'price' ) { $pattern = '"price";s:[^0][\d]*'; $mata_query = array( array( 'key' => 'ac-product-details', 'value' => $pattern, 'compare' => 'REGEXP' ) ); $query->set( 'meta_query', $mata_query ); } elseif ( $_GET['ac_filter_by_meta'] === 'status_published' ) { $query->set( 'post_status', 'publish' ); } elseif ( $_GET['ac_filter_by_meta'] === 'status_draft' ) { $query->set( 'post_status', 'draft' ); } } } add_filter( 'parse_query', 'accp_custom_catalog_filter' );