__( "Shows a price filter slider in a widget which lets you narrow down the list of shown products in categories.", 'woothemes') ); parent::WP_Widget('price_filter', __('WooCommerce Price Filter', 'woothemes'), $widget_ops); } /** @see WP_Widget::widget */ function widget( $args, $instance ) { extract($args); if (!is_tax( 'product_cat' ) && !is_post_type_archive('product') && !is_tax( 'product_tag' )) return; global $_chosen_attributes, $wpdb, $all_post_ids; $title = $instance['title']; $title = apply_filters('widget_title', $title, $instance, $this->id_base); echo $before_widget . $before_title . $title . $after_title; // Remember current filters/search $fields = ''; if (get_search_query()) $fields = ''; if (isset($_GET['post_type'])) $fields .= ''; if ($_chosen_attributes) foreach ($_chosen_attributes as $attribute => $value) : $fields .= ''; endforeach; $min = 0; $max = ceil($wpdb->get_var("SELECT max(meta_value + 0) FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id WHERE meta_key = 'price' AND ( $wpdb->posts.ID IN (".implode(',', $all_post_ids).") OR ( $wpdb->posts.post_parent IN (".implode(',', $all_post_ids).") AND $wpdb->posts.post_parent != 0 ) )")); if (defined('SHOP_IS_ON_FRONT')) : $link = ''; elseif (is_post_type_archive('product') || is_page( get_option('woocommerce_shop_page_id') )) : $link = get_post_type_archive_link('product'); else : $link = get_term_link( get_query_var('term'), get_query_var('taxonomy') ); endif; echo '
'; echo $after_widget; } /** @see WP_Widget::update */ function update( $new_instance, $old_instance ) { if (!isset($new_instance['title']) || empty($new_instance['title'])) $new_instance['title'] = __('Filter by price', 'woothemes'); $instance['title'] = strip_tags(stripslashes($new_instance['title'])); return $instance; } /** @see WP_Widget::form */ function form( $instance ) { global $wpdb; ?>