public function display_shortcode($atts, $content = null) { //load scripts on this page where the shortcode is called wp_enqueue_script($this->plugin_slug . '-plugin-build'); wp_enqueue_script($this->plugin_slug . '-chosen-script'); wp_enqueue_script('jquery-ui-datepicker'); // extract the attributes into variables extract(shortcode_atts(array('id' => '', 'show' => 'form'), $atts)); $returnvar = ""; //make sure its set if ($id != "") { if (function_exists('icl_object_id')) { $base_form_id = icl_object_id($id, 'search-filter-widget', true, ICL_LANGUAGE_CODE); } else { $base_form_id = $id; } $fields = get_post_meta($base_form_id, '_search-filter-fields', true); $settings = get_post_meta($base_form_id, '_search-filter-settings', true); $addclass = ""; global $sf_form_data; $sf_form_data->init($base_form_id); $this->set_defaults(); if ($show == "form") { /* TODO set auto count somewhere else */ global $sf_form_data; if (isset($settings["enable_auto_count"])) { if ($settings["enable_auto_count"] == 1) { $term_relationships = new Search_Filter_Relationships($this->plugin_slug); $term_relationships->init_relationships(); $sf_form_data->set_count_table($term_relationships->get_count_table()); } } //make sure there are results if (isset($fields)) { //make sure results are in array format as expected if (is_array($fields)) { $use_ajax = isset($settings['use_ajax_toggle']) ? (bool) $settings['use_ajax_toggle'] : false; $use_history_api = true; $ajax_target = isset($settings['ajax_target']) ? esc_attr($settings['ajax_target']) : ''; $results_url = isset($settings['results_url']) ? esc_attr($settings['results_url']) : ''; $page_slug = isset($settings['page_slug']) ? esc_attr($settings['page_slug']) : ''; $ajax_links_selector = isset($settings['ajax_links_selector']) ? esc_attr($settings['ajax_links_selector']) : ''; $ajax_auto_submit = isset($settings['auto_submit']) ? (int) $settings['auto_submit'] : ''; $auto_count = isset($settings['enable_auto_count']) ? (int) $settings['enable_auto_count'] : ''; $use_results_shortcode = isset($settings['use_results_shortcode']) ? (int) $settings['use_results_shortcode'] : ''; /* legacy */ $display_results_as = isset($settings['display_results_as']) ? esc_attr($settings['display_results_as']) : 'shortcode'; $update_ajax_url = isset($settings['update_ajax_url']) ? (int) $settings['update_ajax_url'] : ''; $scroll_to_pos = isset($settings['scroll_to_pos']) ? esc_attr($settings['scroll_to_pos']) : ''; $scroll_on_action = isset($settings['scroll_on_action']) ? esc_attr($settings['scroll_on_action']) : ''; $custom_scroll_to = isset($settings['custom_scroll_to']) ? esc_html($settings['custom_scroll_to']) : ''; /* legacy */ if (isset($settings['use_results_shortcode'])) { if ($settings['use_results_shortcode'] == 1) { $display_results_as = "shortcode"; } else { $display_results_as = "archive"; } } /* end legacy */ if (!isset($settings['update_ajax_url'])) { $update_ajax_url = 1; } if ($display_results_as == "shortcode") { //if we're using a shortcode, grab the selector automatically from the id $ajax_target = "#search-filter-results-" . $base_form_id; } $post_types = isset($settings['post_types']) ? $settings['post_types'] : ''; //url /*$ajax_url = ""; $start_url = home_url(); $full_url = $this->get_current_URL(); if(substr($full_url, 0, strlen($start_url)) == $start_url) { $ajax_url = substr($full_url, strlen($start_url)); }*/ $ajax_url = ""; if ($display_results_as == "archive") { $ajax_url = $this->get_current_URL(); } $form_attr = ' data-sf-form-id="' . $base_form_id . '"'; $form_attr .= ' data-use-history-api="' . (int) $use_history_api . '"'; $form_attr .= ' data-template-loaded="' . (int) $this->is_template_loaded . '"'; $lang_code = ""; if (function_exists('icl_object_id')) { $lang_code = ICL_LANGUAGE_CODE; } $form_attr .= ' data-lang-code="' . $lang_code . '"'; if ($use_ajax) { $form_attr .= ' data-ajax="' . (int) $use_ajax . '"'; if ($ajax_target != "") { $form_attr .= ' data-ajax-target="' . $ajax_target . '"'; } if ($ajax_links_selector != "") { $form_attr .= ' data-ajax-links-selector="' . $ajax_links_selector . '"'; } if ($ajax_url != "") { $form_attr .= ' data-ajax-url="' . esc_attr($ajax_url) . '"'; } /*if($use_results_shortcode!="") { $form_attr.=' data-ajax-shortcode="'.$use_results_shortcode.'"'; }*/ if ($update_ajax_url != "") { $form_attr .= ' data-update-ajax-url="' . $update_ajax_url . '"'; } if ($scroll_to_pos != "") { $form_attr .= ' data-scroll-to-pos="' . $scroll_to_pos . '"'; if ($scroll_to_pos == "custom") { if ($custom_scroll_to != "") { $form_attr .= ' data-custom-scroll-to="' . $custom_scroll_to . '"'; } } } if ($scroll_on_action != "") { $form_attr .= ' data-scroll-on-action="' . $scroll_on_action . '"'; } } if ($results_url != "") { $form_attr .= ' data-results-url="' . $results_url . '"'; } if ($display_results_as != "") { $form_attr .= ' data-display-results="' . $display_results_as . '"'; } $form_attr .= ' data-auto-update="' . $ajax_auto_submit . '"'; if ($use_ajax && $display_results_as == "archive" || !$use_ajax) { if (get_option('permalink_structure')) { if ($page_slug != "") { $form_attr .= ' data-page-slug="' . $page_slug . '"'; } } } if ($auto_count == 1) { $form_attr .= ' data-auto-count="' . esc_attr($auto_count) . '"'; } $returnvar .= '<form action="" method="post" class="searchandfilter' . $addclass . '"' . $form_attr . ' id="search-filter-form-' . $base_form_id . '">'; $returnvar .= "<ul>"; //loop through each field and grab html foreach ($fields as $field) { $returnvar .= $this->get_field($field, $post_types, $base_form_id); } $returnvar .= '<input type="hidden" name="' . SF_FPRE . 'submitted" value="1" />'; $returnvar .= '<input type="hidden" name="' . SF_FPRE . 'form_id" value="' . esc_attr($base_form_id) . '" class="sf_form_id" />'; if (isset($_GET[SF_FPRE . 'ajax_timestamp'])) { if (is_numeric($_GET[SF_FPRE . 'ajax_timestamp'])) { $timestamp = $_GET[SF_FPRE . 'ajax_timestamp']; $returnvar .= '<input type="hidden" name="' . SF_FPRE . 'ajax_timestamp" value="' . esc_attr($timestamp) . '" class="sf_ajax_timestamp" />'; } } $returnvar .= "</ul>"; $returnvar .= "</form>"; } } } else { if ($show == "results") { /* legacy */ if ($sf_form_data->settings('use_results_shortcode') == 1) { $display_results_as = "shortcode"; } else { $display_results_as = "archive"; } /* end legacy */ if ($sf_form_data->settings('display_results_as') != "") { $display_results_as = $sf_form_data->settings('display_results_as'); } if ($display_results_as == "shortcode") { $returnvar = $this->display_results->output_results($base_form_id, $settings); } else { if (current_user_can('edit_posts')) { $returnvar = __("<p><strong>Notice:</strong> This Search Form has not been configured to use a shortcode. <a href='" . get_edit_post_link($base_form_id) . "'>Edit settings</a>.</p>", $this->plugin_slug); } } } } } return $returnvar; }
function get_counts() { global $wpdb; //var_dump(($_POST)); $taxterms = array(); foreach ($_POST as $key => $val) { if (strpos($key, SF_TAX_PRE) === 0) { $taxonomy_name = sanitize_key(substr($key, strlen(SF_TAX_PRE))); foreach ($val as $tt) { if ($tt != 0) { $term_id = intval($tt); $term_obj = get_term($term_id, $taxonomy_name); $taxterms[$taxonomy_name][] = $term_obj->slug; } } } else { if (strpos($key, SF_META_PRE) === 0) { $key = substr($key, strlen(SF_META_PRE)); } } } $rel_query_args = array(); $rel_query_args['taxonomies'] = $taxterms; $term_relationships = new Search_Filter_Relationships($this->plugin_slug); //var_dump($rel_query_args); $term_relationships->init_relationships($rel_query_args); echo json_encode($term_relationships->get_count_table()); exit; }