<?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();