container = $container; } public function init() { add_shortcode('awas_search', [$this, 'render_search_bar']); } public function render_search_bar($atts) { // Enqueue frontend assets wp_enqueue_style('awas-advanced-search-frontend', AWAS_WOO_URL . 'modules/AdvancedSearch/assets/css/frontend.css', [], '1.0.0'); wp_enqueue_script('awas-advanced-search-frontend', AWAS_WOO_URL . 'modules/AdvancedSearch/assets/js/frontend.js', [], '1.0.0', true); // Pass PHP variables to Javascript wp_localize_script('awas-advanced-search-frontend', 'awasSearchConfig', [ 'restUrl' => esc_url_raw(rest_url('awas/v1')), 'nonce' => wp_create_nonce('wp_rest'), 'settings' => get_option('awas_settings', []) ]); $atts = shortcode_atts([ 'placeholder' => __('Search for products...', 'awas-woo'), 'width' => '100%', ], $atts, 'awas_search'); $settings = get_option('awas_settings', []); $layout_style = isset($settings['layouts']['style']) ? $settings['layouts']['style'] : 'dropdown'; // Fetch top-level categories $categories = get_terms([ 'taxonomy' => 'product_cat', 'hide_empty' => true, 'parent' => 0 ]); $category_html = ''; $category_html .= '