<?php if (!defined('ABSPATH')) { die('No direct access allowed'); } $uniqid = uniqid(); $slug = $shortcode_options['options']['post_type']; $ajax_results = isset($shortcode_options['options']['ajax_results']) ? $shortcode_options['options']['ajax_results'] : 0; //*** additional taxonomies for Pre-sale question: //I have woocommerce with brands plugin installed, each brand page shows the products of this brand, //can this plugin filter those products based on category? //$_REQUEST['MDF_ADDITIONAL_TAXONOMIES'] = array(); if (isset($shortcode_options['options']['additional_taxonomies']) and !empty($shortcode_options['options']['additional_taxonomies'])) { MetaDataFilter::add_additional_taxonomies($shortcode_options['options']['additional_taxonomies']); } ?> <div class="mdf_shortcode_container <?php if ($shortcode_options['options']['auto_submit']) { ?> mdf_shortcode_auto_submit<?php } ?> mdf_shortcode_skin_<?php echo $shortcode_options['options']['skin']; ?> "> <form method="get" action="" data-unique-id="<?php echo $uniqid; ?> " data-slug="<?php echo $slug;
?> <?php $counter = 0; $icon = MetaDataFilter::get_application_uri() . 'images/tooltip-info.png'; $settings = MetaDataFilter::get_settings(); if (!empty($settings['tooltip_icon'])) { $icon = $settings['tooltip_icon']; } $section_height = (int) get_post_meta($filter_post_id, 'widget_section_max_height', true); //*** additional taxonomies for Pre-sale question: //I have woocommerce with brands plugin installed, each brand page shows the products of this brand, //can this plugin filter those products based on category? //$_REQUEST['MDF_ADDITIONAL_TAXONOMIES'] = array(); if (isset($widget_options['additional_taxonomies']) and !empty($widget_options['additional_taxonomies'])) { MetaDataFilter::add_additional_taxonomies($widget_options['additional_taxonomies']); } //*** ?> <div class="mdf_filter_section mdf_filter_section_<?php echo $counter_block; ?> <?php if ($section_height > 0) { ?> mdf_filter_section_scrolled<?php } ?> <?php if ($section_toggle == 2) { ?>
public static function mdf_custom($atts) { extract(shortcode_atts(array('orderby' => self::$default_order_by, 'order' => self::$default_order, 'page' => 1, 'template' => '', 'post_type' => 'post', 'per_page' => self::get_setting('results_per_page'), 'pagination' => 'b', 'meta_data_filter_cat' => 0, 'taxonomies' => '', 'panel_id' => 0, 'essential' => 0), $atts)); if (empty($template)) { wp_die(__('Please set template option in shortcode!', 'meta-data-filter')); } //$meta_query = array('relation' => 'AND'); $meta_query = array(); if ($meta_data_filter_cat > 0) { $buffer = array('key' => 'meta_data_filter_cat', 'value' => $meta_data_filter_cat, 'compare' => '='); $meta_query[] = $buffer; } //*** //*** fix for reset data in ajax mode 16-01-2015 if (isset($_REQUEST['mdf_current_term_id']) and $_REQUEST['mdf_current_term_id'] > 0 and defined('DOING_AJAX') && DOING_AJAX) { if (!empty($_REQUEST['mdf_current_tax'])) { $taxonomies = $_REQUEST['mdf_current_tax'] . '+' . $_REQUEST['mdf_current_term_id']; } } if (!empty($taxonomies)) { $taxonomies = MetaDataFilter::add_additional_taxonomies($taxonomies, false, '+'); } else { $taxonomies = array(); } //*** $args = array('post_type' => $post_type, 'post_status' => array('publish'), 'ignore_sticky_posts' => self::get_setting('ignore_sticky_posts'), 'posts_per_page' => $per_page, 'orderby' => $orderby, 'order' => $order, 'meta_query' => $meta_query, 'tax_query' => $taxonomies); //fix - rewrite if under searching $args = MetaDataFilter::rewrite_search_query_args($args); $order_by_array = self::$allowed_order_by; $orderby = $args['orderby']; $order = $args['order']; if (in_array($orderby, $order_by_array)) { unset($args['meta_key']); } //+++ $pp = $page; if (get_query_var('page')) { $pp = get_query_var('page'); } if (get_query_var('paged')) { $pp = get_query_var('paged'); } if ($pp > 1) { $args['paged'] = $pp; } else { $args['paged'] = isset($_REQUEST['content_redraw_page']) ? $_REQUEST['content_redraw_page'] : (get_query_var('page') ? get_query_var('page') : $page); } //+++ $_REQUEST['content_redraw_page'] = $args['paged']; $args['posts_per_page'] = $per_page; if (!empty($taxonomies)) { $args['tax_query'] = array_merge($args['tax_query'], $taxonomies); } //*** fix for ordering by meta key if (!in_array($orderby, $order_by_array)) { $args['orderby'] = 'meta_value_num meta_value'; if (!isset($args['meta_key'])) { if (!defined('DOING_AJAX')) { $args['meta_key'] = $orderby; } else { $args['meta_key'] = isset($_REQUEST['order_by']) ? $_REQUEST['order_by'] : $orderby; } } } //*** $_REQUEST['mdf_panel_id'] = $panel_id; $GLOBALS['mdf_args'] = $args; $GLOBALS['essential'] = $essential; $mdf_loop = new WP_Query($args); $GLOBALS['mdf_loop'] = $mdf_loop; $_REQUEST['meta_data_filter_found_posts'] = $mdf_loop->found_posts; //*** //for wrong page numbers if (!$mdf_loop->found_posts) { $args['paged'] = 1; $_REQUEST['content_redraw_page'] = $args['paged']; $args['posts_per_page'] = $per_page; $mdf_loop = new WP_Query($args); $GLOBALS['mdf_loop'] = $mdf_loop; $_REQUEST['meta_data_filter_found_posts'] = $mdf_loop->found_posts; } //+++ ob_start(); get_template_part('mdf_templates/' . $template . '/index'); $out = ob_get_clean(); wp_reset_postdata(); //*** $_REQUEST['mdtf_in_shortcode'] = 1; if ($mdf_loop->found_posts > 0) { switch ($pagination) { case 'b': $result = $out . '<br />' . mdtf_pagination($mdf_loop); break; case 't': $result = mdtf_pagination($mdf_loop) . $out; break; case 'tb': $result = mdtf_pagination($mdf_loop) . $out . '<br />' . mdtf_pagination($mdf_loop); break; default: break; } } else { $result = __('No items found', 'meta-data-filter'); } return $result; }
public static function mdf_gmap_shortcode_const($atts) { extract(shortcode_atts(array('page' => 1, 'post_type' => 'post', 'per_page' => MetaDataFilter::get_setting('results_per_page'), 'meta_data_filter_cat' => 0, 'taxonomies' => ''), $atts)); $meta_query = array(); if ($meta_data_filter_cat > 0) { $buffer = array('key' => 'meta_data_filter_cat', 'value' => $meta_data_filter_cat, 'compare' => '='); $meta_query[] = $buffer; } //*** if (!empty($taxonomies)) { $taxonomies = MetaDataFilter::add_additional_taxonomies($taxonomies, false, '+'); } else { $taxonomies = array(); } //*** $args = array('post_type' => $post_type, 'post_status' => array('publish'), 'ignore_sticky_posts' => self::get_setting('ignore_sticky_posts'), 'posts_per_page' => $per_page, 'meta_query' => $meta_query, 'tax_query' => $taxonomies, 'fields' => 'ids'); //fix - rewrite if under searching $args = MetaDataFilter::rewrite_search_query_args($args); //+++ $pp = $page; if (get_query_var('page')) { $pp = get_query_var('page'); } if (get_query_var('paged')) { $pp = get_query_var('paged'); } if ($pp > 1) { $args['paged'] = $pp; } else { $args['paged'] = isset($_REQUEST['content_redraw_page']) ? $_REQUEST['content_redraw_page'] : (get_query_var('page') ? get_query_var('page') : $page); } //+++ $_REQUEST['content_redraw_page'] = $args['paged']; $args['posts_per_page'] = $per_page; if (!empty($taxonomies)) { $args['tax_query'] = $taxonomies; } //+++ $args['orderby'] = 'title'; unset($args['meta_key']); $args['fields'] = 'ids'; //+++ $mdf_loop = new WP_Query($args); //for wrong page numbers if (!$mdf_loop->found_posts) { $args['paged'] = 1; $args['posts_per_page'] = $per_page; $mdf_loop = new WP_Query($args); } //+++ $atts['posts_ids'] = $mdf_loop->posts; //+++ return self::render_html(self::get_application_path() . 'views/gmap/mdf_gmap_const.php', $atts); }