*/ public function get_keywords(): array { return ['shop', 'product', 'filter', 'filters', 'ajax', 'woocommerce', 'search', 'faceted', 'smart filters']; } /** * Widget icon. * * @return string */ public function get_icon(): string { return 'king-addons-icon king-addons-facet-search'; } /** * Categories. * * @return array */ 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-search-style', ]; } /** * Script dependencies. * * @return array */ public function get_script_depends(): array { return [ KING_ADDONS_ASSETS_UNIQUE_KEY . '-facet-search-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_search_section', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Search Filter', 'king-addons'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'kng_filters_query_id', [ 'label' => esc_html__('Shop Filters ID', 'king-addons'), 'type' => Controls_Manager::TEXT, 'placeholder' => esc_html__('shop_grid_1', 'king-addons'), 'description' => esc_html__('Must match the Shop Filters ID on the product grid.', 'king-addons'), ] ); $this->add_control( 'kng_placeholder', [ 'label' => esc_html__('Placeholder', 'king-addons'), 'type' => Controls_Manager::TEXT, 'default' => esc_html__('Search...', 'king-addons'), ] ); $this->end_controls_section(); require_once KING_ADDONS_PATH . 'includes/helpers/Faceted/Style_Controls.php'; Facet_Style_Controls::fields($this, '{{WRAPPER}} .king-addons-facet--search .king-addons-facet__input'); } /** * Render widget output. * * @return void */ public function render(): void { $settings = $this->get_settings_for_display(); $query_id = sanitize_title($settings['kng_filters_query_id'] ?? ''); $placeholder = $settings['kng_placeholder'] ?? ''; if ('' === $query_id) { return; } ?>