File "woofilters.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/woo-product-filter/modules/woofilters_widget/elementor/woofilters.php
File size: 10.85 KB
MIME-type: text/x-php
Charset: utf-8
<?php
use Elementor\Widget_Base;
use Elementor\Controls_Manager;
class Woofilters_ElementorWidgetWpf extends Widget_Base {
public static $adPath = '';
public static $labelPro = '';
public static $scriptsLoaded = false;
public function __construct ( $data = array(), $args = null ) {
parent::__construct($data, $args);
$isWooCommercePluginActivated = FrameWpf::_()->getModule('woofilters')->isWooCommercePluginActivated();
if (!$isWooCommercePluginActivated) {
return;
}
if (static::$scriptsLoaded) {
return;
}
if ( !is_admin() && !( \Elementor\Plugin::$instance->preview->is_preview_mode() ) ) {
return;
}
$isPro = FrameWpf::_()->isPro();
$modPath = FrameWpf::_()->getModule('woofilters')->getModPath();
$tempPath = FrameWpf::_()->getModule('templates')->getModPath();
wp_register_script('commonWpf', WPF_JS_PATH . 'common.js', array('jquery'), WPF_VERSION);
wp_register_script('coreWpf', WPF_JS_PATH . 'core.js', array('jquery'), WPF_VERSION);
wp_register_script('tooltipster', $tempPath . 'lib/tooltipster/jquery.tooltipster.min.js', false, WPF_VERSION);
wp_register_style('tooltipster', $tempPath . 'lib/tooltipster/tooltipster.css', false, WPF_VERSION);
//addCommonAssets
$options = FrameWpf::_()->getModule( 'options' )->getModel( 'options' )->getAll();
wp_register_style('frontend.filters', $modPath . 'css/frontend.woofilters.css', false, WPF_VERSION);
wp_register_script('frontend.filters', $modPath . 'js/frontend.woofilters.js', false, WPF_VERSION);
if ( \Elementor\Plugin::$instance->preview->is_preview_mode() ) {
$code = 'var isElementorPreview=1;';
wp_add_inline_script('frontend.filters', $code, 'before');
}
if ( isset( $options['content_accessibility'] ) && '1' === $options['content_accessibility']['value'] ) {
wp_register_style('frontend.filters.accessibility', $modPath . 'css/frontend.woofilters.accessibility.css', false, WPF_VERSION);
}
wp_register_style('frontend.multiselect', $modPath . 'css/frontend.multiselect.css', false, WPF_VERSION);
wp_register_script('frontend.multiselect', $modPath . 'js/frontend.multiselect.js', false, WPF_VERSION);
$selectedTitle = esc_attr__(( isset($options['selected_title']['value']) && ''!==$options['selected_title']['value'] ) ? $options['selected_title']['value'] : 'selected', 'woo-product-filter');
wp_add_inline_script( 'frontend.multiselect', "var wpfMultySelectedTraslate = '{$selectedTitle}';", 'before' );
//loadJqueryUi
wp_register_style('jquery-ui', WPF_CSS_PATH . 'jquery-ui.min.css', false, WPF_VERSION);
wp_register_style('jquery-ui.structure', WPF_CSS_PATH . 'jquery-ui.structure.min.css', false, WPF_VERSION);
wp_register_style('jquery-ui.theme', WPF_CSS_PATH . 'jquery-ui.theme.min.css', false, WPF_VERSION);
wp_register_style('jquery-slider', WPF_CSS_PATH . 'jquery-slider.css', false, WPF_VERSION);
wp_register_script('jquery-ui-slider', '', false, WPF_VERSION);
//addPluginCustomStyles
$params = ReqWpf::get( 'get' );
if ( !is_admin() || ( isset($params['page']) && 'wpf-filters' === $params['page'] ) ) {
wp_register_style('custom.filters', $modPath . 'css/custom.woofilters.css', false, WPF_VERSION);
}
//addScriptsContent
if ( $isPro ) {
$modPathPRO = FrameWpf::_()->getModule('woofilterpro')->getModPath();
wp_register_script('frontend.filters.pro', $modPathPRO . 'js/frontend.woofilters.pro.js', array('frontend.filters'), WPF_VERSION, true);
wp_localize_script('frontend.filters.pro', 'wpfTraslate', array(
'ShowMore' => __( 'Show More', 'woo-product-filter' ),
'ShowFewer' => __( 'Show Fewer', 'woo-product-filter' ),
));
wp_register_style('frontend.filters.pro', $modPathPRO . 'css/frontend.woofilters.pro.css', false, WPF_VERSION);
wp_register_style('custom.filters.pro', $modPathPRO . 'css/custom.woofilters.pro.css', false, WPF_VERSION);
wp_register_script('jquery-ui-autocomplete', '', false, WPF_VERSION);
wp_register_style('jquery-ui-autocomplete', $modPathPRO . 'css/jquery-ui-autocomplete.css', false, WPF_VERSION);
wp_register_script('ion.slider', $modPathPRO . 'js/ion.rangeSlider.min.js', false, WPF_VERSION);
wp_register_style('ion.slider', $modPathPRO . 'css/ion.rangeSlider.css', false, WPF_VERSION);
}
if (!$isPro) {
static::$adPath = FrameWpf::_()->getModule('woofilters')->getModPath() . 'img/ad/';
static::$labelPro = ' Pro';
}
static::$scriptsLoaded = true;
}
protected function getFiltersSettings() {
$filters = FrameWpf::_()->getModule('woofilters')->getModel()->getFromTbl();
$filtersOpts = array();
$filtersOpts[0] = 'Select';
$filtersOpts['new'] = 'Create New';
$filtersSettings = array();
foreach ($filters as $filter) {
$filtersOpts[ $filter['id'] ] = $filter['title'];
$filtersSettings[ $filter['id'] ] = unserialize($filter['setting_data']);
}
return array( $filtersOpts, $filtersSettings );
}
public function get_script_depends() {
return array('commonWpf', 'coreWpf', 'jquery-ui-slider', 'tooltipster', 'frontend.filters', 'frontend.multiselect', 'frontend.filters.pro', 'jquery-ui-autocomplete', 'ion.slider');
}
public function get_style_depends() {
return array('frontend.filters', 'tooltipster', 'frontend.filters.accessibility', 'frontend.multiselect', 'frontend.filters.pro',
'jquery-ui', 'jquery-ui.structure', 'jquery-ui.theme', 'jquery-slider', 'custom.filters', 'custom.filters.pro', 'jquery-ui-autocomplete', 'ion.slider');
}
public function get_name() {
return 'woofilters';
}
public function get_title() {
return __( 'Woofilters', 'woo-product-filter' );
}
public function get_icon() {
return 'eicon-table-of-contents';
}
public function get_keywords() {
return array( 'woofilters', 'filter', 'woocommerce' );
}
public function get_categories() {
return array( 'general', 'woocommerce-elements' );
}
public function is_reload_preview_required() {
return true;
}
protected function register_controls() {
if (!is_admin()) {
return false;
}
list( $filtersOpts ) = $this->getFiltersSettings();
$this->start_controls_section(
'section_content',
array(
'label' => __( 'Select Woofilter', 'woo-product-filter' ),
'tab' => Controls_Manager::TAB_CONTENT,
)
);
$this->add_control(
'filter_id',
array(
'label' => __( 'Select Filter', 'woo-product-filter' ),
'type' => Controls_Manager::SELECT,
'options' => $filtersOpts,
'default' => 0,
)
);
$this->add_control(
'filter_name',
array(
'label' => __( 'Filter Name', 'woo-product-filter' ),
'type' => Controls_Manager::TEXT,
'placeholder' => __( 'Enter product filter name', 'woo-product-filter' ),
'default' => '',
'label_block' => true,
'condition' => array(
'filter_id' => 'new',
),
)
);
$this->add_control(
'filter_create',
array(
'label' => __( 'Create Filter', 'woo-product-filter' ),
'type' => Controls_Manager::BUTTON,
'separator' => 'none',
'text' => __( 'Create', 'woo-product-filter' ),
'button_type' => 'success',
'event' => 'createFilter',
'condition' => array(
'filter_id' => 'new',
),
)
);
$this->end_controls_section();
$this->addWooFilterContentTabControls();
$this->addWooFilterStyleTabControls();
$this->addWooFilterAndvancedTabControls();
}
protected function render() {
$shortcode = $this->get_settings_for_display( 'filter_id' );
?>
<div class="elementor-woofilters"><?php echo $shortcode ? do_shortcode( '[wpf-filters id="' . $shortcode . '"]' ) : ''; ?></div>
<?php
}
public function render_plain_content() {
$shortcode = $this->get_settings_for_display( 'filter_id' );
echo $shortcode ? do_shortcode( '[wpf-filters id="' . $shortcode . '"]' ) : '';
}
protected function content_template() {}
public function addWooFilterContentTabControls() {
$this->start_controls_section(
'section_filters',
array(
'label' => 'Filters',
'tab' => Controls_Manager::TAB_CONTENT,
)
);
$this->add_control(
'filter_trigger',
array(
'type' => Controls_Manager::TEXT,
'default' => '',
'label_block' => false,
)
);
$this->add_control(
'filters_raw',
array(
'type' => Controls_Manager::RAW_HTML,
'raw' => FrameWpf::_()->getModule('woofilters')->getView()->getContent('woofiltersEditTabElementorFilters'),
)
);
$this->add_control(
'filter_save',
array(
'type' => Controls_Manager::BUTTON,
'separator' => 'none',
'text' => __( 'Save', 'woo-product-filter' ),
'button_type' => 'success',
'event' => 'saveFilter',
'label_block' => false,
'condition' => array(
'filter_id!' => 'new',
),
)
);
$this->end_controls_section();
}
public function addWooFilterStyleTabControls() {
$this->start_controls_section(
'section_options',
array(
'label' => 'Options',
'tab' => Controls_Manager::TAB_STYLE,
)
);
$this->add_control(
'filter_options_trigger',
array(
'type' => Controls_Manager::TEXT,
'default' => '',
'label_block' => false,
)
);
$this->add_control(
'filters_raw_options',
array(
'type' => Controls_Manager::RAW_HTML,
'raw' => FrameWpf::_()->getModule('woofilters')->getView()->getContent('woofiltersEditTabElementorOptions'),
)
);
$this->add_control(
'filter_save_options',
array(
'type' => Controls_Manager::BUTTON,
'separator' => 'none',
'text' => __( 'Save', 'woo-product-filter' ),
'button_type' => 'success',
'event' => 'saveFilter',
'label_block' => false,
'condition' => array(
'filter_id!' => 'new',
),
)
);
$this->end_controls_section();
}
public function addWooFilterAndvancedTabControls() {
$this->start_controls_section(
'section_design',
array(
'label' => __( 'Design', 'woo-product-filter' ),
'tab' => Controls_Manager::TAB_ADVANCED,
)
);
$this->add_control(
'filter_design_trigger',
array(
'type' => Controls_Manager::TEXT,
'default' => '',
'label_block' => false,
)
);
$this->add_control(
'filters_raw_design',
array(
'type' => Controls_Manager::RAW_HTML,
'raw' => FrameWpf::_()->getModule('woofilters')->getView()->getContent('woofiltersEditTabElementorDesign'),
)
);
$this->add_control(
'filter_save_design',
array(
'type' => Controls_Manager::BUTTON,
'separator' => 'none',
'text' => __( 'Save', 'woo-product-filter' ),
'button_type' => 'success',
'event' => 'saveFilter',
'label_block' => false,
'condition' => array(
'filter_id!' => 'new',
),
)
);
$this->end_controls_section();
}
}