function prdctfltr_price_filter($where, &$wp_query) { global $wpdb, $prdctfltr_global; $pf_activated = $prdctfltr_global['active_filters']; if (isset($pf_activated['sale_products']) && $pf_activated['sale_products'] == 'on') { $pf_sale = true; $pf_where_keys = array(array('_sale_price', '_min_variation_sale_price'), array('_sale_price', '_max_variation_sale_price')); } else { $pf_sale = false; $pf_where_keys = array(array('_price', '_min_variation_price'), array('_price', '_max_variation_price')); } if (isset($wp_query->query_vars['rng_min_price'])) { $_min_price = $wp_query->query_vars['rng_min_price']; } if (isset($wp_query->query_vars['min_price'])) { $_min_price = $wp_query->query_vars['min_price']; } if (isset($pf_activated['rng_min_price'])) { $_min_price = $pf_activated['rng_min_price']; } if (isset($pf_activated['min_price'])) { $_min_price = $pf_activated['min_price']; } if (!isset($_min_price)) { $prices = WC_Prdctfltr::get_filtered_price(); $_min = floor($prices->min_price); } if (isset($wp_query->query_vars['rng_max_price'])) { $_max_price = $wp_query->query_vars['rng_max_price']; } if (isset($wp_query->query_vars['max_price'])) { $_max_price = $wp_query->query_vars['max_price']; } if (isset($pf_activated['rng_max_price'])) { $_max_price = $pf_activated['rng_max_price']; } if (isset($pf_activated['max_price'])) { $_max_price = $pf_activated['max_price']; } if (!isset($_max_price)) { $prices = !isset($prices) ? WC_Prdctfltr::get_filtered_price() : $prices; $_max = ceil($prices->max_price); } if ((isset($_min_price) || isset($_max_price)) !== false) { if (!isset($_min_price)) { $_min_price = $_min; } if (!isset($_max_price)) { $_max_price = $_max; } $where .= " AND ( ( pf_price.meta_key IN ('" . implode("','", array_map('esc_sql', $pf_where_keys[0])) . "') AND pf_price.meta_value >= {$_min_price} AND pf_price.meta_value <= {$_max_price} AND pf_price.meta_value != '' ) OR ( pf_price.meta_key IN ('" . implode("','", array_map('esc_sql', $pf_where_keys[1])) . "') AND pf_price.meta_value >= {$_min_price} AND pf_price.meta_value <= {$_max_price} AND pf_price.meta_value != '' ) ) "; } else { if ($pf_sale === true) { $where .= " AND ( pf_price.meta_key IN ('_sale_price','_min_variation_sale_price') AND pf_price.meta_value > 0 ) "; } } remove_filter('posts_where', 'prdctfltr_price_filter'); return $where; }
if (isset($pf_activated['rng_min_' . $attr]) && $pf_activated['rng_min_' . $attr] == $attribute->slug) { $prdctfltr_global['ranges'][$curr_rng_id]['from'] = $c; } if (isset($pf_activated['rng_max_' . $attr]) && $pf_activated['rng_max_' . $attr] == $attribute->slug) { $prdctfltr_global['ranges'][$curr_rng_id]['to'] = $c; } $prdctfltr_global['ranges'][$curr_rng_id]['values'][] = '<span class=\'pf_range_val\'>' . $attribute->slug . '</span>' . $attribute->name; $c++; } $prdctfltr_global['ranges'][$curr_rng_id]['decorate_both'] = false; $prdctfltr_global['ranges'][$curr_rng_id]['values_separator'] = ' → '; if ($curr_options['wc_settings_prdctfltr_range_filters']['pfr_custom'][$p] !== '') { $add_rng_js = $curr_options['wc_settings_prdctfltr_range_filters']['pfr_custom'][$p]; } } else { $prices = WC_Prdctfltr::get_filtered_price($adpt_rng); $pf_curr_min = floor($prices->min_price); $pf_curr_max = ceil($prices->max_price); if ($pf_curr_min == $pf_curr_max) { $pf_curr_min = $pf_curr_min - 5; $pf_curr_max = $pf_curr_max + 5; } $pf_curr_min = WC_Prdctfltr::price_to_float(strip_tags(wc_price($pf_curr_min))); $pf_curr_max = WC_Prdctfltr::price_to_float(strip_tags(wc_price($pf_curr_max))); $prdctfltr_global['ranges'][$curr_rng_id]['min'] = $pf_curr_min; $prdctfltr_global['ranges'][$curr_rng_id]['max'] = $pf_curr_max; if ($curr_options['wc_settings_prdctfltr_range_filters']['pfr_custom'][$p] !== '') { $add_rng_js = $curr_options['wc_settings_prdctfltr_range_filters']['pfr_custom'][$p]; } $currency_pos = get_option('woocommerce_currency_pos', 'left'); $currency = get_woocommerce_currency_symbol();