get_settings(); // Only enqueue if enabled if ( ! $settings['enable'] ) { return; } // Don't load if current page is excluded if ( $settings_instance->is_current_page_excluded() ) { return; } /** * Filter: aha_mobile_menu_enqueue_assets * Allows developers to prevent asset enqueuing * * @since 1.0.0 * * @param bool $enqueue Whether to enqueue assets. */ if ( ! apply_filters( 'aha_mobile_menu_enqueue_assets', true ) ) { return; } // Enqueue main CSS wp_enqueue_style( 'aha-mobile-menu-main', AHA_MOBILE_MENU_URL . 'assets/css/main.css', array(), AHA_MOBILE_MENU_VERSION ); // Enqueue main JavaScript wp_enqueue_script( 'aha-mobile-menu-main', AHA_MOBILE_MENU_URL . 'assets/js/main.js', array(), AHA_MOBILE_MENU_VERSION, true ); // Pass settings to JavaScript $js_settings = array( 'closeOnClickOutside' => $settings['close_on_click_outside'], 'closeOnNavigation' => $settings['close_on_navigation'], 'mobileOnly' => $settings['mobile_only'], 'animation' => $settings['animation'], 'position' => $settings['position'], 'triggerClasses' => AHA_Mobile_Menu_Sidebar::get_instance()->get_trigger_classes(), 'sidebarId' => 'aha-mobile-menu-sidebar', 'overlayId' => 'aha-mobile-menu-overlay', ); /** * Filter: aha_mobile_menu_js_settings * Allows developers to modify JavaScript settings * * @since 1.0.0 * * @param array $js_settings JavaScript settings. */ $js_settings = apply_filters( 'aha_mobile_menu_js_settings', $js_settings ); wp_localize_script( 'aha-mobile-menu-main', 'ahaMobileMenuSettings', $js_settings ); } /** * Output inline custom styles */ public function inline_custom_styles() { $settings_instance = AHA_Mobile_Menu_Settings::get_instance(); $settings = $settings_instance->get_settings(); if ( ! $settings['enable'] ) { return; } // Don't load if current page is excluded if ( $settings_instance->is_current_page_excluded() ) { return; } // Build CSS content $css_content = ':root {' . "\n"; $css_content .= '--aha-mobile-menu-bg-color: ' . esc_attr( $settings['bg_color'] ) . ';' . "\n"; $css_content .= '--aha-mobile-menu-text-color: ' . esc_attr( $settings['text_color'] ) . ';' . "\n"; $css_content .= '}' . "\n"; // Close button custom colors if ( ! empty( $settings['close_button_bg_color'] ) || ! empty( $settings['close_button_icon_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__close {' . "\n"; if ( ! empty( $settings['close_button_bg_color'] ) ) { $css_content .= 'background-color: ' . esc_attr( $settings['close_button_bg_color'] ) . ' !important;' . "\n"; } if ( ! empty( $settings['close_button_icon_color'] ) ) { $css_content .= 'color: ' . esc_attr( $settings['close_button_icon_color'] ) . ' !important;' . "\n"; } $css_content .= '}' . "\n"; } // Search input custom colors if ( ! empty( $settings['search_input_bg_color'] ) || ! empty( $settings['search_input_border_color'] ) || ! empty( $settings['search_input_text_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__search-input {' . "\n"; if ( ! empty( $settings['search_input_bg_color'] ) ) { $css_content .= 'background-color: ' . esc_attr( $settings['search_input_bg_color'] ) . ' !important;' . "\n"; } if ( ! empty( $settings['search_input_border_color'] ) ) { $css_content .= 'border-color: ' . esc_attr( $settings['search_input_border_color'] ) . ' !important;' . "\n"; } if ( ! empty( $settings['search_input_text_color'] ) ) { $css_content .= 'color: ' . esc_attr( $settings['search_input_text_color'] ) . ' !important;' . "\n"; } $css_content .= '}' . "\n"; } // Search button custom colors if ( ! empty( $settings['search_button_bg_color'] ) || ! empty( $settings['search_icon_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__search-btn {' . "\n"; if ( ! empty( $settings['search_button_bg_color'] ) ) { $css_content .= 'background-color: ' . esc_attr( $settings['search_button_bg_color'] ) . ' !important;' . "\n"; } if ( ! empty( $settings['search_icon_color'] ) ) { $css_content .= 'color: ' . esc_attr( $settings['search_icon_color'] ) . ' !important;' . "\n"; } $css_content .= '}' . "\n"; } // Menu links custom colors if ( ! empty( $settings['menu_link_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__menu a {' . "\n"; $css_content .= 'color: ' . esc_attr( $settings['menu_link_color'] ) . ' !important;' . "\n"; $css_content .= '}' . "\n"; } if ( ! empty( $settings['menu_link_active_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__menu a.current-menu-item,' . "\n"; $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__menu a.current-menu-parent,' . "\n"; $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__menu a.current-menu-ancestor {' . "\n"; $css_content .= 'color: ' . esc_attr( $settings['menu_link_active_color'] ) . ' !important;' . "\n"; $css_content .= '}' . "\n"; } if ( ! empty( $settings['menu_link_hover_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__menu a:hover {' . "\n"; $css_content .= 'color: ' . esc_attr( $settings['menu_link_hover_color'] ) . ' !important;' . "\n"; $css_content .= '}' . "\n"; } // Social icons custom colors if ( ! empty( $settings['social_bg_color'] ) || ! empty( $settings['social_icon_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__social-link {' . "\n"; if ( ! empty( $settings['social_bg_color'] ) ) { $css_content .= 'background-color: ' . esc_attr( $settings['social_bg_color'] ) . ' !important;' . "\n"; } if ( ! empty( $settings['social_icon_color'] ) ) { $css_content .= 'color: ' . esc_attr( $settings['social_icon_color'] ) . ' !important;' . "\n"; } $css_content .= '}' . "\n"; } // Action button 1 custom colors if ( ! empty( $settings['action_button_1_bg_color'] ) || ! empty( $settings['action_button_1_text_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__action-button--1 {' . "\n"; if ( ! empty( $settings['action_button_1_bg_color'] ) ) { $css_content .= 'background-color: ' . esc_attr( $settings['action_button_1_bg_color'] ) . ' !important;' . "\n"; } if ( ! empty( $settings['action_button_1_text_color'] ) ) { $css_content .= 'color: ' . esc_attr( $settings['action_button_1_text_color'] ) . ' !important;' . "\n"; } $css_content .= '}' . "\n"; } // Action button 2 custom colors if ( ! empty( $settings['action_button_2_bg_color'] ) || ! empty( $settings['action_button_2_text_color'] ) ) { $css_content .= '#aha-mobile-menu-sidebar .aha-mobile-menu__action-button--2 {' . "\n"; if ( ! empty( $settings['action_button_2_bg_color'] ) ) { $css_content .= 'background-color: ' . esc_attr( $settings['action_button_2_bg_color'] ) . ' !important;' . "\n"; } if ( ! empty( $settings['action_button_2_text_color'] ) ) { $css_content .= 'color: ' . esc_attr( $settings['action_button_2_text_color'] ) . ' !important;' . "\n"; } $css_content .= '}' . "\n"; } /** * Filter: aha_mobile_menu_inline_styles * Allows developers to modify inline styles * * @since 1.0.0 * * @param string $css Inline CSS content. * @param array $settings Settings array. */ $css_content = apply_filters( 'aha_mobile_menu_inline_styles', $css_content, $settings ); // Add inline style to the enqueued stylesheet using wp_add_inline_style // This ensures it loads after the main CSS file and avoids unescaped output $safe_css = wp_strip_all_tags( $css_content ); if ( wp_style_is( 'aha-mobile-menu-main', 'enqueued' ) ) { wp_add_inline_style( 'aha-mobile-menu-main', $safe_css ); } else { // Fallback: register a dummy handle and add inline style so output goes through WordPress APIs wp_register_style( 'aha-mobile-menu-inline-fallback', false, array(), AHA_MOBILE_MENU_VERSION ); wp_enqueue_style( 'aha-mobile-menu-inline-fallback' ); wp_add_inline_style( 'aha-mobile-menu-inline-fallback', $safe_css ); } } }