*/ public function get_categories(): array { return ['king-addons']; } /** * Style dependencies. * * @return array */ public function get_style_depends(): array { return [ KING_ADDONS_ASSETS_UNIQUE_KEY . '-facet-price-style', ]; } /** * Script dependencies. * * @return array */ public function get_script_depends(): array { return [ KING_ADDONS_ASSETS_UNIQUE_KEY . '-facet-price-script', ]; } public function get_custom_help_url() { return 'mailto:bug@kingaddons.com?subject=Bug Report - King Addons&body=Please describe the issue'; } /** * Register controls. * * @return void */ public function register_controls(): void { $this->start_controls_section( 'kng_facet_price_section', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Facet Price', 'king-addons'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'kng_filters_query_id', [ 'label' => esc_html__('Filter Query ID', 'king-addons'), 'type' => Controls_Manager::TEXT, 'placeholder' => esc_html__('shop_grid_1', 'king-addons'), ] ); $this->add_control( 'kng_min_value', [ 'label' => esc_html__('Minimum Price', 'king-addons'), 'type' => Controls_Manager::NUMBER, 'default' => 0, ] ); $this->add_control( 'kng_max_value', [ 'label' => esc_html__('Maximum Price', 'king-addons'), 'type' => Controls_Manager::NUMBER, 'default' => 100, ] ); $this->add_control( 'kng_step', [ 'label' => esc_html__('Step', 'king-addons'), 'type' => Controls_Manager::NUMBER, 'default' => 1, 'min' => 0.1, ] ); $this->end_controls_section(); } /** * Render widget output. * * @return void */ public function render(): void { $settings = $this->get_settings_for_display(); $query_id = sanitize_title($settings['kng_filters_query_id'] ?? ''); if ('' === $query_id) { return; } $min = isset($settings['kng_min_value']) ? (float) $settings['kng_min_value'] : 0; $max = isset($settings['kng_max_value']) ? (float) $settings['kng_max_value'] : 0; $step = isset($settings['kng_step']) ? (float) $settings['kng_step'] : 1; $show_buckets = true; ?>
    0, 'max' => 25], ['min' => 25, 'max' => 50], ['min' => 50, 'max' => 100], ['min' => 100, 'max' => 250], ['min' => 250, 'max' => 999999], ], 'woo_products_grid' ); foreach ($buckets as $idx => $bucket) : $label = sprintf('%s - %s', wc_price($bucket['min']), wc_price($bucket['max'])); ?>