<?php if (!defined('ABSPATH')) die('No direct access allowed'); final class WOOF_EXT_STEP_FILTER extends WOOF_EXT { public $type = 'application'; public $folder_name = 'step_filter'; //should be defined!! public function __construct() { parent::__construct(); add_shortcode("woof_step", array($this, 'woof_step')); $this->init(); } public function get_ext_path() { return plugin_dir_path(__FILE__); } public function get_ext_override_path() { return get_stylesheet_directory(). DIRECTORY_SEPARATOR ."woof". DIRECTORY_SEPARATOR ."ext". DIRECTORY_SEPARATOR .$this->folder_name. DIRECTORY_SEPARATOR; } public function get_ext_link() { return plugin_dir_url(__FILE__); } public function init() { add_action('woof_print_applications_tabs_' . $this->folder_name, array($this, 'woof_print_applications_tabs'), 10, 1); add_action('woof_print_applications_tabs_content_' . $this->folder_name, array($this, 'woof_print_applications_tabs_content'), 10, 1); self::$includes['css']['woof_' . $this->folder_name . '_html_items'] = $this->get_ext_link() . 'css/' . $this->folder_name . '.css'; self::$includes['js']['woof_step_filter_html_items'] = $this->get_ext_link() . 'js/step_filter.js'; self::$includes['js_init_functions'][$this->folder_name] = 'woof_step_filter_html_items'; } public function woof_print_applications_tabs() { ?> <li> <a href="#tabs-stat"> <span class="icon-cog-outline"></span> <span><?php esc_html_e("Step by step filter", 'woocommerce-products-filter') ?></span> </a> </li> <?php } public function woof_print_applications_tabs_content() { $data = array(); woof()->render_html_e($this->get_ext_path() . 'views/tabs_content.php', $data); } public function woof_step($args) { $shortcode_txt = ""; if (isset($args['taxonomies'])) { $shortcode_txt .= " taxonomies=" . $args['taxonomies']; } if (isset($args['tax_only'])) { $shortcode_txt .= " tax_only=" . $args['tax_only']; } if (isset($args['tax_exclude'])) { $shortcode_txt .= " tax_exclude=" . $args['tax_exclude']; } if (isset($args['by_only'])) { $shortcode_txt .= " by_only=" . $args['by_only']; } if (isset($args['autohide'])) { $shortcode_txt .= " autohide=" . $args['autohide']; } if (isset($args['redirect'])) { $shortcode_txt .= " redirect=" . $args['redirect']; } if (isset($args['sid'])) { $shortcode_txt .= " sid=" . $args['sid']; } if (isset($args['dynamic_recount'])) { $shortcode_txt .= " dynamic_recount=" . $args['dynamic_recount']; } if (isset($args["by_step"])) { $shortcode_txt .= " by_step=" . $args["by_step"]; } else { $shortcode_txt .= " by_step=''"; } $data["hide"] = 1; if (isset($args['hide'])) { $data["hide"] = $args['hide']; } $data["autosubmit"] = 0; if (isset($args['autosubmit'])) { $data["autosubmit"] = $args['autosubmit']; } $data["next_btn_txt"] = esc_html__('Next', 'woocommerce-products-filter'); if (isset($args["next_btn_txt"])) { $data["next_btn_txt"] = $args["next_btn_txt"]; } $data["prev_btn_txt"] = esc_html__('Back', 'woocommerce-products-filter'); if (isset($args["prev_btn_txt"])) { $data["prev_btn_txt"] = $args["prev_btn_txt"]; } $data["filter_type"] = 1; if (isset($args["filter_type"])) { $data["filter_type"] = intval($args["filter_type"]); if ($data["filter_type"] > 2) { $data["filter_type"] = 2; } } $data["selector"] = ".woof_step"; if (isset($args["selector"])) { $data["selector"] = $args["selector"]; } $data["img_behavior"] = "append"; if (isset($args["img_behavior"])) { $data["img_behavior"] = $args["img_behavior"]; } $data["images"] = array(); if (isset($args['images'])) { $size=apply_filters("woof_step_filter_img_size",'thumbnail'); $image_arr= explode(",",$args['images']); foreach($image_arr as $image_item){ $image_item=explode(":",$image_item,2); if(count($image_item)==2){ $url=wp_get_attachment_image_url(intval($image_item[1]),$size); if($url){ $data["images"][trim($image_item[0])]= '<img src="'.$url.'" class="woof_step_filter_image woof_step_filter_image_'.trim($image_item[0]).'" >'; } } } } $data["shortcode_woof"] = "[woof ajax_redraw=1 autosubmit=0 " . $shortcode_txt . "]"; if(file_exists($this->get_ext_override_path(). 'views' . DIRECTORY_SEPARATOR . 'shortcodes' . DIRECTORY_SEPARATOR . 'step_filter.php')){ return woof()->render_html($this->get_ext_override_path() . 'views' . DIRECTORY_SEPARATOR . 'shortcodes' . DIRECTORY_SEPARATOR . 'step_filter.php', $data); } return woof()->render_html($this->get_ext_path() . 'views' . DIRECTORY_SEPARATOR . 'shortcode' . DIRECTORY_SEPARATOR . 'step_filter.php', $data); } } WOOF_EXT::$includes['applications']['step_filter'] = new WOOF_EXT_STEP_FILTER();