get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; if ( isset( $wp_customize->selective_refresh ) ) { $wp_customize->selective_refresh->add_partial( 'blogname', array( 'selector' => '.logo', 'render_callback' => 'business_ai_customize_partial_blogname', ) ); $wp_customize->selective_refresh->add_partial( 'blogdescription', array( 'selector' => '.site-description', 'render_callback' => 'business_ai_customize_partial_blogdescription', ) ); } // ============================================ // COLORS - Add to existing WordPress Colors section // ============================================ // Primary Color $wp_customize->add_setting( 'business_ai_color_primary', array( 'default' => '#7c3aed', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_primary', array( 'label' => __( 'Primary Color', 'business-ai' ), 'description' => __( 'Main accent color for buttons, links, highlights', 'business-ai' ), 'section' => 'colors', 'priority' => 10, ) ) ); // Primary Dark Color $wp_customize->add_setting( 'business_ai_color_primary_dark', array( 'default' => '#5b21b6', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_primary_dark', array( 'label' => __( 'Primary Dark Color', 'business-ai' ), 'description' => __( 'Darker shade of primary for hover states', 'business-ai' ), 'section' => 'colors', 'priority' => 11, ) ) ); // Secondary Color $wp_customize->add_setting( 'business_ai_color_secondary', array( 'default' => '#8b5cf6', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_secondary', array( 'label' => __( 'Secondary Color', 'business-ai' ), 'description' => __( 'Secondary accent color', 'business-ai' ), 'section' => 'colors', 'priority' => 12, ) ) ); // Accent Color $wp_customize->add_setting( 'business_ai_color_accent', array( 'default' => '#a78bfa', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_accent', array( 'label' => __( 'Accent Color', 'business-ai' ), 'description' => __( 'Accent highlights and gradients', 'business-ai' ), 'section' => 'colors', 'priority' => 13, ) ) ); // Dark Background Color $wp_customize->add_setting( 'business_ai_color_dark', array( 'default' => '#18181b', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_dark', array( 'label' => __( 'Dark Background', 'business-ai' ), 'description' => __( 'Main dark background color', 'business-ai' ), 'section' => 'colors', 'priority' => 14, ) ) ); // Darker Background Color $wp_customize->add_setting( 'business_ai_color_darker', array( 'default' => '#0f0f1a', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_darker', array( 'label' => __( 'Darker Background', 'business-ai' ), 'description' => __( 'Deepest background shade', 'business-ai' ), 'section' => 'colors', 'priority' => 15, ) ) ); // Light Color $wp_customize->add_setting( 'business_ai_color_light', array( 'default' => '#ffffff', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_light', array( 'label' => __( 'Light Color', 'business-ai' ), 'description' => __( 'Light text and backgrounds', 'business-ai' ), 'section' => 'colors', 'priority' => 16, ) ) ); // Gray Color $wp_customize->add_setting( 'business_ai_color_gray', array( 'default' => '#52525b', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_gray', array( 'label' => __( 'Gray Color', 'business-ai' ), 'description' => __( 'Muted text and borders', 'business-ai' ), 'section' => 'colors', 'priority' => 17, ) ) ); // Star/Rating Color $wp_customize->add_setting( 'business_ai_color_star', array( 'default' => '#fbbf24', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_color_star', array( 'label' => __( 'Star/Rating Color', 'business-ai' ), 'description' => __( 'Color for star ratings in testimonials', 'business-ai' ), 'section' => 'colors', 'priority' => 18, ) ) ); // Background Style $wp_customize->add_setting( 'business_ai_bg_style', array( 'default' => 'gradient', 'sanitize_callback' => 'business_ai_sanitize_bg_style', ) ); $wp_customize->add_control( 'business_ai_bg_style', array( 'label' => __( 'Background Style', 'business-ai' ), 'description' => __( 'Choose the body background style', 'business-ai' ), 'section' => 'colors', 'type' => 'select', 'choices' => array( 'gradient' => __( 'Gradient Mesh', 'business-ai' ), 'solid' => __( 'Solid Color', 'business-ai' ), ), 'priority' => 19, ) ); // Background Color (for solid mode) $wp_customize->add_setting( 'business_ai_bg_color', array( 'default' => '#ffffff', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'business_ai_bg_color', array( 'label' => __( 'Background Color', 'business-ai' ), 'description' => __( 'Used when Background Style is set to Solid Color', 'business-ai' ), 'section' => 'colors', 'priority' => 20, ) ) ); // ============================================ // HEADER SECTION // ============================================ $wp_customize->add_section( 'business_ai_header_section', array( 'title' => __( 'Header', 'business-ai' ), 'priority' => 27, ) ); $wp_customize->add_setting( 'business_ai_header_cta_text', array( 'default' => __( 'Get Started', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_header_cta_text', array( 'label' => __( 'Header Button Text', 'business-ai' ), 'section' => 'business_ai_header_section', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_header_cta_url', array( 'default' => '#contact', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_header_cta_url', array( 'label' => __( 'Header Button URL', 'business-ai' ), 'section' => 'business_ai_header_section', 'type' => 'url', ) ); // Navigation Items (used when no WordPress menu is assigned) $nav_defaults = array( 1 => array( 'text' => __( 'Lorem', 'business-ai' ), 'url' => '#services' ), 2 => array( 'text' => __( 'Ipsum', 'business-ai' ), 'url' => '#about' ), 3 => array( 'text' => __( 'Dolor', 'business-ai' ), 'url' => '#testimonials' ), 4 => array( 'text' => __( 'Sit Amet', 'business-ai' ), 'url' => '#pricing' ), 5 => array( 'text' => __( 'Consectetur', 'business-ai' ), 'url' => '#faq' ), ); for ( $i = 1; $i <= 5; $i++ ) { $wp_customize->add_setting( "business_ai_nav_{$i}_text", array( 'default' => $nav_defaults[ $i ]['text'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_nav_{$i}_text", array( /* translators: %d: nav item number */ 'label' => sprintf( __( 'Nav Item %d Text', 'business-ai' ), $i ), 'section' => 'business_ai_header_section', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_nav_{$i}_url", array( 'default' => $nav_defaults[ $i ]['url'], 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( "business_ai_nav_{$i}_url", array( /* translators: %d: nav item number */ 'label' => sprintf( __( 'Nav Item %d URL', 'business-ai' ), $i ), 'section' => 'business_ai_header_section', 'type' => 'text', ) ); } // ============================================ // TYPOGRAPHY SECTION // ============================================ $wp_customize->add_section( 'business_ai_typography_section', array( 'title' => __( 'Typography', 'business-ai' ), 'priority' => 28, ) ); $wp_customize->add_setting( 'business_ai_font_family', array( 'default' => 'system', 'sanitize_callback' => 'business_ai_sanitize_font_family', ) ); $wp_customize->add_control( 'business_ai_font_family', array( 'label' => __( 'Font Family', 'business-ai' ), 'section' => 'business_ai_typography_section', 'type' => 'select', 'choices' => array( 'system' => __( 'System Default', 'business-ai' ), 'sans' => __( 'Sans-serif (Clean)', 'business-ai' ), 'serif' => __( 'Serif (Classic)', 'business-ai' ), 'mono' => __( 'Monospace (Technical)', 'business-ai' ), 'rounded' => __( 'Rounded (Friendly)', 'business-ai' ), ), ) ); // ============================================ // HERO SECTION // ============================================ $wp_customize->add_panel( 'business_ai_hero_panel', array( 'title' => __( 'Hero Section', 'business-ai' ), 'priority' => 30, ) ); // Display Settings (top of panel) $wp_customize->add_section( 'business_ai_hero_display', array( 'title' => __( 'Display', 'business-ai' ), 'panel' => 'business_ai_hero_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_hero_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_hero_enable', array( 'label' => __( 'Enable Hero Section', 'business-ai' ), 'section' => 'business_ai_hero_display', 'type' => 'checkbox', ) ); $wp_customize->add_section( 'business_ai_hero_content', array( 'title' => __( 'Content', 'business-ai' ), 'panel' => 'business_ai_hero_panel', 'priority' => 2, ) ); // Hero Badge Text $wp_customize->add_setting( 'business_ai_hero_badge_text', array( 'default' => __( 'Now with AI-powered analytics', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_hero_badge_text', array( 'label' => __( 'Hero Badge Text', 'business-ai' ), 'description' => __( 'Small badge displayed above the hero title. Leave empty to hide.', 'business-ai' ), 'section' => 'business_ai_hero_content', 'type' => 'text', ) ); // Hero Title $wp_customize->add_setting( 'business_ai_hero_title', array( 'default' => __( 'Grow Your Business With Confidence', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_hero_title', array( 'label' => __( 'Hero Title', 'business-ai' ), 'section' => 'business_ai_hero_content', 'type' => 'text', ) ); // Hero Subtitle $wp_customize->add_setting( 'business_ai_hero_subtitle', array( 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_hero_subtitle', array( 'label' => __( 'Hero Subtitle', 'business-ai' ), 'section' => 'business_ai_hero_content', 'type' => 'text', ) ); // Primary Button Text $wp_customize->add_setting( 'business_ai_hero_btn_primary_text', array( 'default' => __( 'Get Started', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_hero_btn_primary_text', array( 'label' => __( 'Primary Button Text', 'business-ai' ), 'section' => 'business_ai_hero_content', 'type' => 'text', ) ); // Primary Button URL $wp_customize->add_setting( 'business_ai_hero_btn_primary_url', array( 'default' => '#contact', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( 'business_ai_hero_btn_primary_url', array( 'label' => __( 'Primary Button URL', 'business-ai' ), 'section' => 'business_ai_hero_content', 'type' => 'text', ) ); // Secondary Button Text $wp_customize->add_setting( 'business_ai_hero_btn_secondary_text', array( 'default' => __( 'Learn More', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_hero_btn_secondary_text', array( 'label' => __( 'Secondary Button Text', 'business-ai' ), 'section' => 'business_ai_hero_content', 'type' => 'text', ) ); // Secondary Button URL $wp_customize->add_setting( 'business_ai_hero_btn_secondary_url', array( 'default' => '#services', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( 'business_ai_hero_btn_secondary_url', array( 'label' => __( 'Secondary Button URL', 'business-ai' ), 'section' => 'business_ai_hero_content', 'type' => 'text', ) ); // Hero Stats $wp_customize->add_section( 'business_ai_hero_stats', array( 'title' => __( 'Stats', 'business-ai' ), 'panel' => 'business_ai_hero_panel', 'priority' => 3, ) ); $stat_defaults = array( 1 => array( 'number' => '150+', 'label' => __( 'Lorem Ipsum', 'business-ai' ) ), 2 => array( 'number' => '99.9%', 'label' => __( 'Dolor Sit Amet', 'business-ai' ) ), 3 => array( 'number' => '24/7', 'label' => __( 'Consectetur', 'business-ai' ) ), ); for ( $i = 1; $i <= 3; $i++ ) { $wp_customize->add_setting( "business_ai_hero_stat_{$i}_number", array( 'default' => $stat_defaults[ $i ]['number'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_hero_stat_{$i}_number", array( /* translators: %d: stat number */ /* translators: %d: stat number */ 'label' => sprintf( __( 'Stat %d Number', 'business-ai' ), $i ), 'section' => 'business_ai_hero_stats', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_hero_stat_{$i}_label", array( 'default' => $stat_defaults[ $i ]['label'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_hero_stat_{$i}_label", array( /* translators: %d: stat number */ /* translators: %d: stat number */ 'label' => sprintf( __( 'Stat %d Label', 'business-ai' ), $i ), 'section' => 'business_ai_hero_stats', 'type' => 'text', ) ); } // ============================================ // SERVICES SECTION // ============================================ $wp_customize->add_panel( 'business_ai_services_panel', array( 'title' => __( 'Services Section', 'business-ai' ), 'priority' => 31, ) ); // Display Settings (top of panel) $wp_customize->add_section( 'business_ai_services_display', array( 'title' => __( 'Display', 'business-ai' ), 'panel' => 'business_ai_services_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_services_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_services_enable', array( 'label' => __( 'Enable Services Section', 'business-ai' ), 'section' => 'business_ai_services_display', 'type' => 'checkbox', ) ); $wp_customize->add_section( 'business_ai_services_header', array( 'title' => __( 'Title & Subtitle', 'business-ai' ), 'panel' => 'business_ai_services_panel', 'priority' => 2, ) ); $wp_customize->add_setting( 'business_ai_services_title', array( 'default' => __( 'Lorem Ipsum Dolor Sit Amet', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_services_title', array( 'label' => __( 'Section Title', 'business-ai' ), 'section' => 'business_ai_services_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_services_subtitle', array( 'default' => __( 'Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_services_subtitle', array( 'label' => __( 'Section Subtitle', 'business-ai' ), 'section' => 'business_ai_services_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_services_badge', array( 'default' => __( 'Features', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_services_badge', array( 'label' => __( 'Section Badge Text', 'business-ai' ), 'section' => 'business_ai_services_header', 'type' => 'text', ) ); // Service Cards $service_defaults = array( 1 => array( 'icon' => 'M13 10V3L4 14h7v7l9-11h-7z', 'title' => __( 'Lorem Ipsum', 'business-ai' ), 'desc' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.', 'business-ai' ), ), 2 => array( 'icon' => 'M9 19v-6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2zm0 0V9a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v10m-6 0a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2m0 0V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2z', 'title' => __( 'Dolor Sit', 'business-ai' ), 'desc' => __( 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat.', 'business-ai' ), ), 3 => array( 'icon' => 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z', 'title' => __( 'Consectetur', 'business-ai' ), 'desc' => __( 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit.', 'business-ai' ), ), 4 => array( 'icon' => 'M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM23 21v-2a4 4 0 0 0-3-3.87M17 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z', 'title' => __( 'Adipiscing', 'business-ai' ), 'desc' => __( 'Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit sed quia.', 'business-ai' ), ), 5 => array( 'icon' => 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z', 'title' => __( 'Tempor', 'business-ai' ), 'desc' => __( 'Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae.', 'business-ai' ), ), 6 => array( 'icon' => 'M3 18v-6a9 9 0 0 1 18 0v6M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z', 'title' => __( 'Incididunt', 'business-ai' ), 'desc' => __( 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet consectetur adipisci velit.', 'business-ai' ), ), ); for ( $i = 1; $i <= 6; $i++ ) { $wp_customize->add_section( "business_ai_service_{$i}", array( /* translators: %d: service number */ 'title' => sprintf( __( 'Service %d', 'business-ai' ), $i ), 'panel' => 'business_ai_services_panel', ) ); $wp_customize->add_setting( "business_ai_service_{$i}_icon", array( 'default' => $service_defaults[ $i ]['icon'], 'sanitize_callback' => 'business_ai_sanitize_svg_path', ) ); $wp_customize->add_control( "business_ai_service_{$i}_icon", array( 'label' => __( 'Icon SVG Path', 'business-ai' ), 'description' => __( 'SVG path data (d attribute)', 'business-ai' ), 'section' => "business_ai_service_{$i}", 'type' => 'textarea', ) ); $wp_customize->add_setting( "business_ai_service_{$i}_title", array( 'default' => $service_defaults[ $i ]['title'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_service_{$i}_title", array( 'label' => __( 'Title', 'business-ai' ), 'section' => "business_ai_service_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_service_{$i}_desc", array( 'default' => $service_defaults[ $i ]['desc'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_service_{$i}_desc", array( 'label' => __( 'Description', 'business-ai' ), 'section' => "business_ai_service_{$i}", 'type' => 'text', ) ); } // ============================================ // ABOUT SECTION // ============================================ $wp_customize->add_section( 'business_ai_about_section', array( 'title' => __( 'About Section', 'business-ai' ), 'priority' => 32, ) ); // Enable About Section $wp_customize->add_setting( 'business_ai_about_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_about_enable', array( 'label' => __( 'Enable About Section', 'business-ai' ), 'section' => 'business_ai_about_section', 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'business_ai_about_title', array( 'default' => __( 'Why Businesses Choose Us', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_about_title', array( 'label' => __( 'Section Title', 'business-ai' ), 'section' => 'business_ai_about_section', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_about_description', array( 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.', 'business-ai' ), 'sanitize_callback' => 'sanitize_textarea_field', ) ); $wp_customize->add_control( 'business_ai_about_description', array( 'label' => __( 'Description', 'business-ai' ), 'section' => 'business_ai_about_section', 'type' => 'textarea', ) ); $wp_customize->add_setting( 'business_ai_about_image', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'business_ai_about_image', array( 'label' => __( 'About Section Image', 'business-ai' ), 'section' => 'business_ai_about_section', ) ) ); // About Features $about_features = array( 1 => __( 'Lorem ipsum dolor sit', 'business-ai' ), 2 => __( 'Consectetur adipiscing', 'business-ai' ), 3 => __( 'Sed do eiusmod tempor', 'business-ai' ), 4 => __( 'Ut labore et dolore magna', 'business-ai' ), ); for ( $i = 1; $i <= 4; $i++ ) { $wp_customize->add_setting( "business_ai_about_feature_{$i}", array( 'default' => $about_features[ $i ], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_about_feature_{$i}", array( /* translators: %d: feature number */ 'label' => sprintf( __( 'Feature %d', 'business-ai' ), $i ), 'section' => 'business_ai_about_section', 'type' => 'text', ) ); } // ============================================ // TESTIMONIALS SECTION // ============================================ $wp_customize->add_panel( 'business_ai_testimonials_panel', array( 'title' => __( 'Testimonials Section', 'business-ai' ), 'priority' => 33, ) ); // Display Settings (top of panel) $wp_customize->add_section( 'business_ai_testimonials_display', array( 'title' => __( 'Display', 'business-ai' ), 'panel' => 'business_ai_testimonials_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_testimonials_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_testimonials_enable', array( 'label' => __( 'Enable Testimonials Section', 'business-ai' ), 'section' => 'business_ai_testimonials_display', 'type' => 'checkbox', ) ); $wp_customize->add_section( 'business_ai_testimonials_header', array( 'title' => __( 'Title & Subtitle', 'business-ai' ), 'panel' => 'business_ai_testimonials_panel', 'priority' => 2, ) ); $wp_customize->add_setting( 'business_ai_testimonials_title', array( 'default' => __( 'Loved by Teams Worldwide', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_testimonials_title', array( 'label' => __( 'Section Title', 'business-ai' ), 'section' => 'business_ai_testimonials_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_testimonials_subtitle', array( 'default' => __( 'See what our customers have to say about their experience.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_testimonials_subtitle', array( 'label' => __( 'Section Subtitle', 'business-ai' ), 'section' => 'business_ai_testimonials_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_testimonials_badge', array( 'default' => __( 'Testimonials', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_testimonials_badge', array( 'label' => __( 'Section Badge Text', 'business-ai' ), 'section' => 'business_ai_testimonials_header', 'type' => 'text', ) ); // Testimonial Cards $testimonial_defaults = array( 1 => array( 'quote' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'business-ai' ), 'name' => __( 'Jane Doe', 'business-ai' ), 'role' => __( 'Lorem Ipsum', 'business-ai' ), 'avatar' => 'JD', ), 2 => array( 'quote' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 'business-ai' ), 'name' => __( 'John Smith', 'business-ai' ), 'role' => __( 'Dolor Sit Amet', 'business-ai' ), 'avatar' => 'JS', ), 3 => array( 'quote' => __( 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.', 'business-ai' ), 'name' => __( 'Alex Johnson', 'business-ai' ), 'role' => __( 'Consectetur', 'business-ai' ), 'avatar' => 'AJ', ), ); for ( $i = 1; $i <= 3; $i++ ) { $wp_customize->add_section( "business_ai_testimonial_{$i}", array( /* translators: %d: testimonial number */ 'title' => sprintf( __( 'Testimonial %d', 'business-ai' ), $i ), 'panel' => 'business_ai_testimonials_panel', ) ); $wp_customize->add_setting( "business_ai_testimonial_{$i}_quote", array( 'default' => $testimonial_defaults[ $i ]['quote'], 'sanitize_callback' => 'sanitize_textarea_field', ) ); $wp_customize->add_control( "business_ai_testimonial_{$i}_quote", array( 'label' => __( 'Quote', 'business-ai' ), 'section' => "business_ai_testimonial_{$i}", 'type' => 'textarea', ) ); $wp_customize->add_setting( "business_ai_testimonial_{$i}_name", array( 'default' => $testimonial_defaults[ $i ]['name'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_testimonial_{$i}_name", array( 'label' => __( 'Name', 'business-ai' ), 'section' => "business_ai_testimonial_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_testimonial_{$i}_role", array( 'default' => $testimonial_defaults[ $i ]['role'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_testimonial_{$i}_role", array( 'label' => __( 'Role', 'business-ai' ), 'section' => "business_ai_testimonial_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_testimonial_{$i}_avatar", array( 'default' => $testimonial_defaults[ $i ]['avatar'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_testimonial_{$i}_avatar", array( 'label' => __( 'Avatar Initials', 'business-ai' ), 'description' => __( '2 letters (e.g., JD for Jane Doe)', 'business-ai' ), 'section' => "business_ai_testimonial_{$i}", 'type' => 'text', ) ); } // ============================================ // PRICING SECTION // ============================================ $wp_customize->add_panel( 'business_ai_pricing_panel', array( 'title' => __( 'Pricing Section', 'business-ai' ), 'priority' => 34, ) ); // Display Settings (top of panel) $wp_customize->add_section( 'business_ai_pricing_display', array( 'title' => __( 'Display', 'business-ai' ), 'panel' => 'business_ai_pricing_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_pricing_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_pricing_enable', array( 'label' => __( 'Enable Pricing Section', 'business-ai' ), 'section' => 'business_ai_pricing_display', 'type' => 'checkbox', ) ); $wp_customize->add_section( 'business_ai_pricing_header', array( 'title' => __( 'Title & Subtitle', 'business-ai' ), 'panel' => 'business_ai_pricing_panel', 'priority' => 2, ) ); $wp_customize->add_setting( 'business_ai_pricing_title', array( 'default' => __( 'Lorem Ipsum Dolor', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_pricing_title', array( 'label' => __( 'Section Title', 'business-ai' ), 'section' => 'business_ai_pricing_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_pricing_subtitle', array( 'default' => __( 'Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_pricing_subtitle', array( 'label' => __( 'Section Subtitle', 'business-ai' ), 'section' => 'business_ai_pricing_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_pricing_badge', array( 'default' => __( 'Pricing', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_pricing_badge', array( 'label' => __( 'Section Badge Text', 'business-ai' ), 'section' => 'business_ai_pricing_header', 'type' => 'text', ) ); // Pricing Tiers $pricing_defaults = array( 1 => array( 'name' => __( 'Lorem', 'business-ai' ), 'price' => '$29', 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum dolor\nSed do eiusmod\nConsectetur adipiscing\nUt labore et dolore\nMagna aliqua", 'business-ai' ), 'btn_text' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => false, ), 2 => array( 'name' => __( 'Ipsum', 'business-ai' ), 'price' => '$99', 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum dolor\nSed do eiusmod\nConsectetur adipiscing\nUt labore et dolore\nMagna aliqua\nTempor incididunt", 'business-ai' ), 'btn_text' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => true, ), 3 => array( 'name' => __( 'Dolor', 'business-ai' ), 'price' => '$299', 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum dolor\nSed do eiusmod\nConsectetur adipiscing\nUt labore et dolore\nMagna aliqua\nTempor incididunt", 'business-ai' ), 'btn_text' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => false, ), ); for ( $i = 1; $i <= 3; $i++ ) { $wp_customize->add_section( "business_ai_pricing_{$i}", array( /* translators: %d: pricing tier number */ 'title' => sprintf( __( 'Pricing Tier %d', 'business-ai' ), $i ), 'panel' => 'business_ai_pricing_panel', ) ); $wp_customize->add_setting( "business_ai_pricing_{$i}_name", array( 'default' => $pricing_defaults[ $i ]['name'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_pricing_{$i}_name", array( 'label' => __( 'Plan Name', 'business-ai' ), 'section' => "business_ai_pricing_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_pricing_{$i}_price", array( 'default' => $pricing_defaults[ $i ]['price'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_pricing_{$i}_price", array( 'label' => __( 'Price', 'business-ai' ), 'section' => "business_ai_pricing_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_pricing_{$i}_period", array( 'default' => $pricing_defaults[ $i ]['period'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_pricing_{$i}_period", array( 'label' => __( 'Period', 'business-ai' ), 'section' => "business_ai_pricing_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_pricing_{$i}_features", array( 'default' => $pricing_defaults[ $i ]['features'], 'sanitize_callback' => 'sanitize_textarea_field', ) ); $wp_customize->add_control( "business_ai_pricing_{$i}_features", array( 'label' => __( 'Features', 'business-ai' ), 'description' => __( 'One feature per line', 'business-ai' ), 'section' => "business_ai_pricing_{$i}", 'type' => 'textarea', ) ); $wp_customize->add_setting( "business_ai_pricing_{$i}_btn_text", array( 'default' => $pricing_defaults[ $i ]['btn_text'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_pricing_{$i}_btn_text", array( 'label' => __( 'Button Text', 'business-ai' ), 'section' => "business_ai_pricing_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_pricing_{$i}_btn_url", array( 'default' => '#contact', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( "business_ai_pricing_{$i}_btn_url", array( 'label' => __( 'Button URL', 'business-ai' ), 'section' => "business_ai_pricing_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_pricing_{$i}_featured", array( 'default' => $pricing_defaults[ $i ]['featured'], 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( "business_ai_pricing_{$i}_featured", array( 'label' => __( 'Featured (highlighted)', 'business-ai' ), 'section' => "business_ai_pricing_{$i}", 'type' => 'checkbox', ) ); } // ============================================ // FAQ SECTION // ============================================ $wp_customize->add_panel( 'business_ai_faq_panel', array( 'title' => __( 'FAQ Section', 'business-ai' ), 'priority' => 35, ) ); // Display Settings (top of panel) $wp_customize->add_section( 'business_ai_faq_display', array( 'title' => __( 'Display', 'business-ai' ), 'panel' => 'business_ai_faq_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_faq_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_faq_enable', array( 'label' => __( 'Enable FAQ Section', 'business-ai' ), 'section' => 'business_ai_faq_display', 'type' => 'checkbox', ) ); $wp_customize->add_section( 'business_ai_faq_header', array( 'title' => __( 'Title & Subtitle', 'business-ai' ), 'panel' => 'business_ai_faq_panel', 'priority' => 2, ) ); $wp_customize->add_setting( 'business_ai_faq_title', array( 'default' => __( 'Frequently Asked Questions', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_faq_title', array( 'label' => __( 'Section Title', 'business-ai' ), 'section' => 'business_ai_faq_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_faq_subtitle', array( 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_faq_subtitle', array( 'label' => __( 'Section Subtitle', 'business-ai' ), 'section' => 'business_ai_faq_header', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_faq_badge', array( 'default' => __( 'FAQ', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_faq_badge', array( 'label' => __( 'Section Badge Text', 'business-ai' ), 'section' => 'business_ai_faq_header', 'type' => 'text', ) ); // FAQ Items $faq_defaults = array( 1 => array( 'question' => __( 'Lorem ipsum dolor sit amet?', 'business-ai' ), 'answer' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 'business-ai' ), ), 2 => array( 'question' => __( 'Consectetur adipiscing elit?', 'business-ai' ), 'answer' => __( 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.', 'business-ai' ), ), 3 => array( 'question' => __( 'Sed do eiusmod tempor incididunt?', 'business-ai' ), 'answer' => __( 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', 'business-ai' ), ), 4 => array( 'question' => __( 'Ut labore et dolore magna aliqua?', 'business-ai' ), 'answer' => __( 'Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores.', 'business-ai' ), ), 5 => array( 'question' => __( 'Quis autem vel eum iure?', 'business-ai' ), 'answer' => __( 'Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.', 'business-ai' ), ), ); for ( $i = 1; $i <= 5; $i++ ) { $wp_customize->add_section( "business_ai_faq_{$i}", array( /* translators: %d: FAQ item number */ 'title' => sprintf( __( 'FAQ Item %d', 'business-ai' ), $i ), 'panel' => 'business_ai_faq_panel', ) ); $wp_customize->add_setting( "business_ai_faq_{$i}_question", array( 'default' => $faq_defaults[ $i ]['question'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_faq_{$i}_question", array( 'label' => __( 'Question', 'business-ai' ), 'section' => "business_ai_faq_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_faq_{$i}_answer", array( 'default' => $faq_defaults[ $i ]['answer'], 'sanitize_callback' => 'sanitize_textarea_field', ) ); $wp_customize->add_control( "business_ai_faq_{$i}_answer", array( 'label' => __( 'Answer', 'business-ai' ), 'section' => "business_ai_faq_{$i}", 'type' => 'textarea', ) ); } // ============================================ // CTA SECTION // ============================================ $wp_customize->add_section( 'business_ai_cta_section', array( 'title' => __( 'CTA Section', 'business-ai' ), 'priority' => 36, ) ); // Enable CTA Section $wp_customize->add_setting( 'business_ai_cta_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_cta_enable', array( 'label' => __( 'Enable CTA Section', 'business-ai' ), 'section' => 'business_ai_cta_section', 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'business_ai_cta_title', array( 'default' => __( 'Lorem Ipsum Dolor Sit', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_cta_title', array( 'label' => __( 'Title', 'business-ai' ), 'section' => 'business_ai_cta_section', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_cta_subtitle', array( 'default' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_cta_subtitle', array( 'label' => __( 'Subtitle', 'business-ai' ), 'section' => 'business_ai_cta_section', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_cta_btn_text', array( 'default' => __( 'Get Started', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_cta_btn_text', array( 'label' => __( 'Button Text', 'business-ai' ), 'section' => 'business_ai_cta_section', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_cta_btn_url', array( 'default' => '#contact', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( 'business_ai_cta_btn_url', array( 'label' => __( 'Button URL', 'business-ai' ), 'section' => 'business_ai_cta_section', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_cta_note', array( 'default' => __( 'Sed do eiusmod tempor', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_cta_note', array( 'label' => __( 'Note Text', 'business-ai' ), 'section' => 'business_ai_cta_section', 'type' => 'text', ) ); // ============================================ // FOOTER SECTION // ============================================ $wp_customize->add_panel( 'business_ai_footer_panel', array( 'title' => __( 'Footer', 'business-ai' ), 'priority' => 37, ) ); // Footer Tagline Section $wp_customize->add_section( 'business_ai_footer_tagline', array( 'title' => __( 'Tagline', 'business-ai' ), 'panel' => 'business_ai_footer_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_footer_tagline', array( 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_footer_tagline', array( 'label' => __( 'Footer Tagline', 'business-ai' ), 'description' => __( 'Short description shown below the site name in the footer.', 'business-ai' ), 'section' => 'business_ai_footer_tagline', 'type' => 'textarea', ) ); // Social Links Section $wp_customize->add_section( 'business_ai_footer_social', array( 'title' => __( 'Social Links', 'business-ai' ), 'panel' => 'business_ai_footer_panel', ) ); $wp_customize->add_setting( 'business_ai_footer_facebook', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_footer_facebook', array( 'label' => __( 'Facebook URL', 'business-ai' ), 'description' => __( 'Leave empty to hide', 'business-ai' ), 'section' => 'business_ai_footer_social', 'type' => 'url', ) ); $wp_customize->add_setting( 'business_ai_footer_twitter', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_footer_twitter', array( 'label' => __( 'Twitter/X URL', 'business-ai' ), 'description' => __( 'Leave empty to hide', 'business-ai' ), 'section' => 'business_ai_footer_social', 'type' => 'url', ) ); $wp_customize->add_setting( 'business_ai_footer_linkedin', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_footer_linkedin', array( 'label' => __( 'LinkedIn URL', 'business-ai' ), 'description' => __( 'Leave empty to hide', 'business-ai' ), 'section' => 'business_ai_footer_social', 'type' => 'url', ) ); $wp_customize->add_setting( 'business_ai_footer_instagram', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_footer_instagram', array( 'label' => __( 'Instagram URL', 'business-ai' ), 'description' => __( 'Leave empty to hide', 'business-ai' ), 'section' => 'business_ai_footer_social', 'type' => 'url', ) ); // Footer Columns Section $wp_customize->add_section( 'business_ai_footer_columns', array( 'title' => __( 'Column Titles', 'business-ai' ), 'panel' => 'business_ai_footer_panel', ) ); $wp_customize->add_setting( 'business_ai_footer_col1_title', array( 'default' => __( 'Lorem Ipsum', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_footer_col1_title', array( 'label' => __( 'Column 1 Title', 'business-ai' ), 'section' => 'business_ai_footer_columns', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_footer_col2_title', array( 'default' => __( 'Dolor Sit', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_footer_col2_title', array( 'label' => __( 'Column 2 Title', 'business-ai' ), 'section' => 'business_ai_footer_columns', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_footer_col3_title', array( 'default' => __( 'Amet', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_footer_col3_title', array( 'label' => __( 'Column 3 Title', 'business-ai' ), 'section' => 'business_ai_footer_columns', 'type' => 'text', ) ); // Legal Links Section $wp_customize->add_section( 'business_ai_footer_legal', array( 'title' => __( 'Legal Links', 'business-ai' ), 'panel' => 'business_ai_footer_panel', ) ); $wp_customize->add_setting( 'business_ai_footer_privacy_url', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_footer_privacy_url', array( 'label' => __( 'Privacy Policy URL', 'business-ai' ), 'description' => __( 'Leave empty to hide', 'business-ai' ), 'section' => 'business_ai_footer_legal', 'type' => 'url', ) ); $wp_customize->add_setting( 'business_ai_footer_terms_url', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_footer_terms_url', array( 'label' => __( 'Terms of Service URL', 'business-ai' ), 'description' => __( 'Leave empty to hide', 'business-ai' ), 'section' => 'business_ai_footer_legal', 'type' => 'url', ) ); $wp_customize->add_setting( 'business_ai_footer_cookie_url', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( 'business_ai_footer_cookie_url', array( 'label' => __( 'Cookie Policy URL', 'business-ai' ), 'description' => __( 'Leave empty to hide', 'business-ai' ), 'section' => 'business_ai_footer_legal', 'type' => 'url', ) ); // Copyright Text Section $wp_customize->add_section( 'business_ai_footer_copyright', array( 'title' => __( 'Copyright', 'business-ai' ), 'panel' => 'business_ai_footer_panel', ) ); $wp_customize->add_setting( 'business_ai_footer_copyright_text', array( 'default' => __( 'All rights reserved.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_footer_copyright_text', array( 'label' => __( 'Copyright Text', 'business-ai' ), 'description' => __( 'Year and site name are added automatically', 'business-ai' ), 'section' => 'business_ai_footer_copyright', 'type' => 'text', ) ); // Footer Menu Links - Column 1 (Services) $wp_customize->add_section( 'business_ai_footer_menu1', array( 'title' => __( 'Column 1 Links', 'business-ai' ), 'description' => __( 'Default links when no WordPress menu is assigned to Footer Services.', 'business-ai' ), 'panel' => 'business_ai_footer_panel', ) ); $footer_menu1_defaults = array( 1 => array( 'text' => __( 'Web Development', 'business-ai' ), 'url' => '#' ), 2 => array( 'text' => __( 'Mobile Apps', 'business-ai' ), 'url' => '#' ), 3 => array( 'text' => __( 'UI/UX Design', 'business-ai' ), 'url' => '#' ), 4 => array( 'text' => __( 'Consulting', 'business-ai' ), 'url' => '#' ), ); for ( $i = 1; $i <= 4; $i++ ) { $wp_customize->add_setting( "business_ai_footer_menu1_{$i}_text", array( 'default' => $footer_menu1_defaults[ $i ]['text'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_footer_menu1_{$i}_text", array( /* translators: %d: link number */ 'label' => sprintf( __( 'Link %d Text', 'business-ai' ), $i ), 'section' => 'business_ai_footer_menu1', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_footer_menu1_{$i}_url", array( 'default' => $footer_menu1_defaults[ $i ]['url'], 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( "business_ai_footer_menu1_{$i}_url", array( /* translators: %d: link number */ 'label' => sprintf( __( 'Link %d URL', 'business-ai' ), $i ), 'section' => 'business_ai_footer_menu1', 'type' => 'text', ) ); } // Footer Menu Links - Column 2 (Company) $wp_customize->add_section( 'business_ai_footer_menu2', array( 'title' => __( 'Column 2 Links', 'business-ai' ), 'description' => __( 'Default links when no WordPress menu is assigned to Footer Company.', 'business-ai' ), 'panel' => 'business_ai_footer_panel', ) ); $footer_menu2_defaults = array( 1 => array( 'text' => __( 'About Us', 'business-ai' ), 'url' => '#' ), 2 => array( 'text' => __( 'Careers', 'business-ai' ), 'url' => '#' ), 3 => array( 'text' => __( 'Blog', 'business-ai' ), 'url' => '#' ), 4 => array( 'text' => __( 'Contact', 'business-ai' ), 'url' => '#' ), ); for ( $i = 1; $i <= 4; $i++ ) { $wp_customize->add_setting( "business_ai_footer_menu2_{$i}_text", array( 'default' => $footer_menu2_defaults[ $i ]['text'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_footer_menu2_{$i}_text", array( /* translators: %d: link number */ 'label' => sprintf( __( 'Link %d Text', 'business-ai' ), $i ), 'section' => 'business_ai_footer_menu2', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_footer_menu2_{$i}_url", array( 'default' => $footer_menu2_defaults[ $i ]['url'], 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( "business_ai_footer_menu2_{$i}_url", array( /* translators: %d: link number */ 'label' => sprintf( __( 'Link %d URL', 'business-ai' ), $i ), 'section' => 'business_ai_footer_menu2', 'type' => 'text', ) ); } // Footer Menu Links - Column 3 (Resources) $wp_customize->add_section( 'business_ai_footer_menu3', array( 'title' => __( 'Column 3 Links', 'business-ai' ), 'description' => __( 'Default links when no WordPress menu is assigned to Footer Resources.', 'business-ai' ), 'panel' => 'business_ai_footer_panel', ) ); $footer_menu3_defaults = array( 1 => array( 'text' => __( 'Documentation', 'business-ai' ), 'url' => '#' ), 2 => array( 'text' => __( 'Help Center', 'business-ai' ), 'url' => '#' ), 3 => array( 'text' => __( 'Community', 'business-ai' ), 'url' => '#' ), 4 => array( 'text' => __( 'Partners', 'business-ai' ), 'url' => '#' ), ); for ( $i = 1; $i <= 4; $i++ ) { $wp_customize->add_setting( "business_ai_footer_menu3_{$i}_text", array( 'default' => $footer_menu3_defaults[ $i ]['text'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_footer_menu3_{$i}_text", array( /* translators: %d: link number */ 'label' => sprintf( __( 'Link %d Text', 'business-ai' ), $i ), 'section' => 'business_ai_footer_menu3', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_footer_menu3_{$i}_url", array( 'default' => $footer_menu3_defaults[ $i ]['url'], 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( "business_ai_footer_menu3_{$i}_url", array( /* translators: %d: link number */ 'label' => sprintf( __( 'Link %d URL', 'business-ai' ), $i ), 'section' => 'business_ai_footer_menu3', 'type' => 'text', ) ); } // ============================================ // PAGE TEMPLATES PANEL // ============================================ $wp_customize->add_panel( 'business_ai_page_templates_panel', array( 'title' => __( 'Page Templates', 'business-ai' ), 'priority' => 38, ) ); // ============================================ // PRICING PAGE TEMPLATE // ============================================ $wp_customize->add_section( 'business_ai_tpl_pricing_general', array( 'title' => __( 'Pricing Page - General', 'business-ai' ), 'panel' => 'business_ai_page_templates_panel', ) ); $wp_customize->add_setting( 'business_ai_tpl_pricing_subtitle', array( 'default' => __( 'Lorem ipsum dolor sit amet consectetur', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_tpl_pricing_subtitle', array( 'label' => __( 'Default Subtitle', 'business-ai' ), 'description' => __( 'Shown when page has no excerpt', 'business-ai' ), 'section' => 'business_ai_tpl_pricing_general', 'type' => 'text', ) ); // Pricing Plans $pricing_tpl_defaults = array( 1 => array( 'name' => __( 'Lorem', 'business-ai' ), 'desc' => __( 'Lorem ipsum dolor', 'business-ai' ), 'price' => '9', 'currency' => '$', 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum\nDolor sit amet\nConsectetur", 'business-ai' ), 'btn' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => false ), 2 => array( 'name' => __( 'Ipsum', 'business-ai' ), 'desc' => __( 'Consectetur adipiscing', 'business-ai' ), 'price' => '29', 'currency' => '$', 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum\nDolor sit amet\nConsectetur\nAdipiscing elit", 'business-ai' ), 'btn' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => true ), 3 => array( 'name' => __( 'Dolor', 'business-ai' ), 'desc' => __( 'Sed do eiusmod tempor', 'business-ai' ), 'price' => '99', 'currency' => '$', 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum\nDolor sit amet\nConsectetur\nAdipiscing elit\nSed do eiusmod", 'business-ai' ), 'btn' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => false ), ); for ( $i = 1; $i <= 3; $i++ ) { $wp_customize->add_section( "business_ai_tpl_pricing_plan_{$i}", array( /* translators: %d: plan number */ 'title' => sprintf( __( 'Pricing Page - Plan %d', 'business-ai' ), $i ), 'panel' => 'business_ai_page_templates_panel', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_name", array( 'default' => $pricing_tpl_defaults[ $i ]['name'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_name", array( 'label' => __( 'Plan Name', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_desc", array( 'default' => $pricing_tpl_defaults[ $i ]['desc'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_desc", array( 'label' => __( 'Plan Description', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_currency", array( 'default' => $pricing_tpl_defaults[ $i ]['currency'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_currency", array( 'label' => __( 'Currency Symbol', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_price", array( 'default' => $pricing_tpl_defaults[ $i ]['price'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_price", array( 'label' => __( 'Price', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_period", array( 'default' => $pricing_tpl_defaults[ $i ]['period'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_period", array( 'label' => __( 'Period (e.g. /month)', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_features", array( 'default' => $pricing_tpl_defaults[ $i ]['features'], 'sanitize_callback' => 'sanitize_textarea_field', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_features", array( 'label' => __( 'Features (one per line)', 'business-ai' ), 'description' => __( 'Prefix with - to show as excluded', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'textarea', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_btn", array( 'default' => $pricing_tpl_defaults[ $i ]['btn'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_btn", array( 'label' => __( 'Button Text', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_btn_url", array( 'default' => '#', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_btn_url", array( 'label' => __( 'Button URL', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_pricing_{$i}_featured", array( 'default' => $pricing_tpl_defaults[ $i ]['featured'], 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( "business_ai_tpl_pricing_{$i}_featured", array( 'label' => __( 'Featured (Most Popular)', 'business-ai' ), 'section' => "business_ai_tpl_pricing_plan_{$i}", 'type' => 'checkbox', ) ); } // ============================================ // CONTACT PAGE TEMPLATE // ============================================ $wp_customize->add_section( 'business_ai_tpl_contact', array( 'title' => __( 'Contact Page', 'business-ai' ), 'panel' => 'business_ai_page_templates_panel', ) ); $wp_customize->add_setting( 'business_ai_tpl_contact_subtitle', array( 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_tpl_contact_subtitle', array( 'label' => __( 'Default Subtitle', 'business-ai' ), 'section' => 'business_ai_tpl_contact', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_tpl_contact_phone', array( 'default' => '+0 (000) 000-0000', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_tpl_contact_phone', array( 'label' => __( 'Phone Number', 'business-ai' ), 'section' => 'business_ai_tpl_contact', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_tpl_contact_email', array( 'default' => 'lorem@ipsum.com', 'sanitize_callback' => 'sanitize_email', ) ); $wp_customize->add_control( 'business_ai_tpl_contact_email', array( 'label' => __( 'Email Address', 'business-ai' ), 'section' => 'business_ai_tpl_contact', 'type' => 'email', ) ); $wp_customize->add_setting( 'business_ai_tpl_contact_address', array( 'default' => "123 Lorem Ipsum\nDolor Sit, AM 00001", 'sanitize_callback' => 'sanitize_textarea_field', ) ); $wp_customize->add_control( 'business_ai_tpl_contact_address', array( 'label' => __( 'Address', 'business-ai' ), 'section' => 'business_ai_tpl_contact', 'type' => 'textarea', ) ); $wp_customize->add_setting( 'business_ai_tpl_contact_twitter', array( 'default' => '', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( 'business_ai_tpl_contact_twitter', array( 'label' => __( 'Twitter URL', 'business-ai' ), 'section' => 'business_ai_tpl_contact', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_tpl_contact_linkedin', array( 'default' => '', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( 'business_ai_tpl_contact_linkedin', array( 'label' => __( 'LinkedIn URL', 'business-ai' ), 'section' => 'business_ai_tpl_contact', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_tpl_contact_facebook', array( 'default' => '', 'sanitize_callback' => 'business_ai_sanitize_url', ) ); $wp_customize->add_control( 'business_ai_tpl_contact_facebook', array( 'label' => __( 'Facebook URL', 'business-ai' ), 'section' => 'business_ai_tpl_contact', 'type' => 'text', ) ); // ============================================ // ABOUT PAGE TEMPLATE // ============================================ $wp_customize->add_section( 'business_ai_tpl_about_general', array( 'title' => __( 'About Page - General', 'business-ai' ), 'panel' => 'business_ai_page_templates_panel', ) ); $wp_customize->add_setting( 'business_ai_tpl_about_subtitle', array( 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_tpl_about_subtitle', array( 'label' => __( 'Default Subtitle', 'business-ai' ), 'section' => 'business_ai_tpl_about_general', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_tpl_about_story_title', array( 'default' => __( 'Lorem Ipsum', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_tpl_about_story_title', array( 'label' => __( 'Story Section Title', 'business-ai' ), 'section' => 'business_ai_tpl_about_general', 'type' => 'text', ) ); $wp_customize->add_setting( 'business_ai_tpl_about_story_text', array( 'default' => __( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", 'business-ai' ), 'sanitize_callback' => 'sanitize_textarea_field', ) ); $wp_customize->add_control( 'business_ai_tpl_about_story_text', array( 'label' => __( 'Story Text', 'business-ai' ), 'section' => 'business_ai_tpl_about_general', 'type' => 'textarea', ) ); // Story Image $wp_customize->add_setting( 'business_ai_tpl_about_story_image', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'business_ai_tpl_about_story_image', array( 'label' => __( 'Story Image', 'business-ai' ), 'section' => 'business_ai_tpl_about_general', ) ) ); // About Values $wp_customize->add_section( 'business_ai_tpl_about_values', array( 'title' => __( 'About Page - Values', 'business-ai' ), 'panel' => 'business_ai_page_templates_panel', ) ); $wp_customize->add_setting( 'business_ai_tpl_about_values_title', array( 'default' => __( 'Dolor Sit Amet', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_tpl_about_values_title', array( 'label' => __( 'Section Title', 'business-ai' ), 'section' => 'business_ai_tpl_about_values', 'type' => 'text', ) ); $about_values_defaults = array( 1 => array( 'title' => __( 'Lorem Ipsum', 'business-ai' ), 'desc' => __( 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua ut enim ad minim veniam.', 'business-ai' ) ), 2 => array( 'title' => __( 'Dolor Sit Amet', 'business-ai' ), 'desc' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.', 'business-ai' ) ), 3 => array( 'title' => __( 'Consectetur', 'business-ai' ), 'desc' => __( 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla.', 'business-ai' ) ), ); for ( $i = 1; $i <= 3; $i++ ) { $wp_customize->add_setting( "business_ai_tpl_about_value_{$i}_title", array( 'default' => $about_values_defaults[ $i ]['title'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_about_value_{$i}_title", array( /* translators: %d: value number */ 'label' => sprintf( __( 'Value %d Title', 'business-ai' ), $i ), 'section' => 'business_ai_tpl_about_values', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_about_value_{$i}_desc", array( 'default' => $about_values_defaults[ $i ]['desc'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_about_value_{$i}_desc", array( /* translators: %d: value number */ 'label' => sprintf( __( 'Value %d Description', 'business-ai' ), $i ), 'section' => 'business_ai_tpl_about_values', 'type' => 'text', ) ); } // About Stats $wp_customize->add_section( 'business_ai_tpl_about_stats', array( 'title' => __( 'About Page - Stats', 'business-ai' ), 'panel' => 'business_ai_page_templates_panel', ) ); $about_stats_defaults = array( 1 => array( 'number' => '500+', 'label' => __( 'Lorem Ipsum', 'business-ai' ) ), 2 => array( 'number' => '50+', 'label' => __( 'Dolor Sit', 'business-ai' ) ), 3 => array( 'number' => '10+', 'label' => __( 'Amet Consectetur', 'business-ai' ) ), 4 => array( 'number' => '99%', 'label' => __( 'Adipiscing Elit', 'business-ai' ) ), ); for ( $i = 1; $i <= 4; $i++ ) { $wp_customize->add_setting( "business_ai_tpl_about_stat_{$i}_number", array( 'default' => $about_stats_defaults[ $i ]['number'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_about_stat_{$i}_number", array( /* translators: %d: stat number */ 'label' => sprintf( __( 'Stat %d Number', 'business-ai' ), $i ), 'section' => 'business_ai_tpl_about_stats', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_about_stat_{$i}_label", array( 'default' => $about_stats_defaults[ $i ]['label'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_about_stat_{$i}_label", array( /* translators: %d: stat number */ 'label' => sprintf( __( 'Stat %d Label', 'business-ai' ), $i ), 'section' => 'business_ai_tpl_about_stats', 'type' => 'text', ) ); } // About Team $wp_customize->add_section( 'business_ai_tpl_about_team', array( 'title' => __( 'About Page - Team', 'business-ai' ), 'panel' => 'business_ai_page_templates_panel', ) ); $about_team_defaults = array( 1 => array( 'name' => __( 'Lorem Ipsum', 'business-ai' ), 'role' => __( 'Dolor Sit Amet', 'business-ai' ), 'initials' => 'LI' ), 2 => array( 'name' => __( 'Dolor Sit', 'business-ai' ), 'role' => __( 'Consectetur', 'business-ai' ), 'initials' => 'DS' ), 3 => array( 'name' => __( 'Amet Consectetur', 'business-ai' ), 'role' => __( 'Adipiscing Elit', 'business-ai' ), 'initials' => 'AC' ), 4 => array( 'name' => __( 'Sed Eiusmod', 'business-ai' ), 'role' => __( 'Tempor Incididunt', 'business-ai' ), 'initials' => 'SE' ), ); for ( $i = 1; $i <= 4; $i++ ) { $wp_customize->add_setting( "business_ai_tpl_about_team_{$i}_name", array( 'default' => $about_team_defaults[ $i ]['name'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_about_team_{$i}_name", array( /* translators: %d: team member number */ 'label' => sprintf( __( 'Team Member %d Name', 'business-ai' ), $i ), 'section' => 'business_ai_tpl_about_team', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_about_team_{$i}_role", array( 'default' => $about_team_defaults[ $i ]['role'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_about_team_{$i}_role", array( /* translators: %d: team member number */ 'label' => sprintf( __( 'Team Member %d Role', 'business-ai' ), $i ), 'section' => 'business_ai_tpl_about_team', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_tpl_about_team_{$i}_photo", array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, "business_ai_tpl_about_team_{$i}_photo", array( /* translators: %d: team member number */ 'label' => sprintf( __( 'Team Member %d Photo', 'business-ai' ), $i ), 'section' => 'business_ai_tpl_about_team', ) ) ); $wp_customize->add_setting( "business_ai_tpl_about_team_{$i}_initials", array( 'default' => $about_team_defaults[ $i ]['initials'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_tpl_about_team_{$i}_initials", array( /* translators: %d: team member number */ 'label' => sprintf( __( 'Team Member %d Initials', 'business-ai' ), $i ), 'description' => __( 'Shown if no photo uploaded', 'business-ai' ), 'section' => 'business_ai_tpl_about_team', 'type' => 'text', ) ); } // ============================================ // TRUSTED BY SECTION // ============================================ $wp_customize->add_panel( 'business_ai_logos_panel', array( 'title' => __( 'Trusted By Section', 'business-ai' ), 'priority' => 31, ) ); // Display Settings $wp_customize->add_section( 'business_ai_logos_display', array( 'title' => __( 'Display', 'business-ai' ), 'panel' => 'business_ai_logos_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_logos_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_logos_enable', array( 'label' => __( 'Enable Trusted By Section', 'business-ai' ), 'section' => 'business_ai_logos_display', 'type' => 'checkbox', ) ); // Content $wp_customize->add_section( 'business_ai_logos_content', array( 'title' => __( 'Content', 'business-ai' ), 'panel' => 'business_ai_logos_panel', 'priority' => 2, ) ); $wp_customize->add_setting( 'business_ai_logos_title', array( 'default' => __( 'Trusted by innovative teams worldwide', 'business-ai' ), 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( 'business_ai_logos_title', array( 'label' => __( 'Section Title', 'business-ai' ), 'section' => 'business_ai_logos_content', 'type' => 'text', ) ); $logo_defaults = array( 1 => 'Lorem', 2 => 'Ipsum', 3 => 'Dolor', 4 => 'Sit Amet', 5 => 'Consectetur', 6 => 'Adipiscing', ); for ( $i = 1; $i <= 6; $i++ ) { $wp_customize->add_setting( "business_ai_logo_{$i}_text", array( 'default' => $logo_defaults[ $i ], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_logo_{$i}_text", array( /* translators: %d: logo item number */ 'label' => sprintf( __( 'Company Name %d', 'business-ai' ), $i ), 'section' => 'business_ai_logos_content', 'type' => 'text', ) ); } // ============================================ // STATS SECTION // ============================================ $wp_customize->add_panel( 'business_ai_stats_panel', array( 'title' => __( 'Stats Section', 'business-ai' ), 'priority' => 32, ) ); // Display Settings $wp_customize->add_section( 'business_ai_stats_display', array( 'title' => __( 'Display', 'business-ai' ), 'panel' => 'business_ai_stats_panel', 'priority' => 1, ) ); $wp_customize->add_setting( 'business_ai_stats_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_stats_enable', array( 'label' => __( 'Enable Stats Section', 'business-ai' ), 'section' => 'business_ai_stats_display', 'type' => 'checkbox', ) ); // Stats Items $wp_customize->add_section( 'business_ai_stats_items', array( 'title' => __( 'Stats', 'business-ai' ), 'panel' => 'business_ai_stats_panel', 'priority' => 2, ) ); $stat_defaults = array( 1 => array( 'number' => '10K+', 'label' => __( 'Lorem Ipsum', 'business-ai' ) ), 2 => array( 'number' => '50+', 'label' => __( 'Dolor Sit Amet', 'business-ai' ) ), 3 => array( 'number' => '99.9%', 'label' => __( 'Consectetur Adipiscing', 'business-ai' ) ), 4 => array( 'number' => '24/7', 'label' => __( 'Sed Do Eiusmod', 'business-ai' ) ), ); for ( $i = 1; $i <= 4; $i++ ) { $wp_customize->add_setting( "business_ai_stat_{$i}_number", array( 'default' => $stat_defaults[ $i ]['number'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_stat_{$i}_number", array( /* translators: %d: stat item number */ 'label' => sprintf( __( 'Stat %d Number', 'business-ai' ), $i ), 'section' => 'business_ai_stats_items', 'type' => 'text', ) ); $wp_customize->add_setting( "business_ai_stat_{$i}_label", array( 'default' => $stat_defaults[ $i ]['label'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( "business_ai_stat_{$i}_label", array( /* translators: %d: stat item number */ 'label' => sprintf( __( 'Stat %d Label', 'business-ai' ), $i ), 'section' => 'business_ai_stats_items', 'type' => 'text', ) ); } // ============================================ // CHAT WIDGET — settings added to AI Chatbot section // ============================================ $wp_customize->add_setting( 'business_ai_chat_widget_enable', array( 'default' => true, 'sanitize_callback' => 'business_ai_sanitize_checkbox', ) ); $wp_customize->add_control( 'business_ai_chat_widget_enable', array( 'label' => __( 'Show Chat Icon', 'business-ai' ), 'section' => 'business_ai_chatbot_section', 'type' => 'checkbox', ) ); } add_action( 'customize_register', 'business_ai_customize_register' ); /** * Sanitize checkbox */ function business_ai_sanitize_checkbox( $checked ) { return ( ( isset( $checked ) && true == $checked ) ? true : false ); } /** * Sanitize SVG path data */ function business_ai_sanitize_svg_path( $input ) { // Allow only valid SVG path characters return preg_replace( '/[^A-Za-z0-9\s\.\,\-]/', '', $input ); } /** * Sanitize URL - allows anchor links */ function business_ai_sanitize_url( $input ) { if ( strpos( $input, '#' ) === 0 ) { return sanitize_text_field( $input ); } return esc_url_raw( $input ); } /** * Render the site title for the selective refresh partial. * * @return void */ function business_ai_customize_partial_blogname() { echo esc_html( get_bloginfo( 'name' ) ); } /** * Render the site tagline for the selective refresh partial. * * @return void */ function business_ai_customize_partial_blogdescription() { echo esc_html( get_bloginfo( 'description' ) ); } /** * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. */ function business_ai_customize_preview_js() { wp_enqueue_script( 'business-ai-customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), BUSINESS_AI_VERSION, true ); } add_action( 'customize_preview_init', 'business_ai_customize_preview_js' ); /** * Add AI Chatbot section */ function business_ai_customize_register_chatbot( $wp_customize ) { // Add AI Chatbot Section $wp_customize->add_section( 'business_ai_chatbot_section', array( 'title' => __( 'AI Chatbot', 'business-ai' ), 'priority' => 25, ) ); // Dummy setting for the chatbot info $wp_customize->add_setting( 'business_ai_chatbot_dummy', array( 'default' => '', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( new Business_AI_Chatbot_Control( $wp_customize, 'business_ai_chatbot_dummy', array( 'section' => 'business_ai_chatbot_section', ) ) ); } add_action( 'customize_register', 'business_ai_customize_register_chatbot', 5 ); /** * Custom AI Chatbot Control */ if ( class_exists( 'WP_Customize_Control' ) ) { class Business_AI_Chatbot_Control extends WP_Customize_Control { public $type = 'business_ai_chatbot_info'; public function render_content() { // Check plugin status $plugin_slug = 'asyntai-ai-chatbot/asyntai-chatbot.php'; $plugin_installed = file_exists( WP_PLUGIN_DIR . '/' . $plugin_slug ); $plugin_active = is_plugin_active( $plugin_slug ); ?>

add_section( 'business_ai_reset_section', array( 'title' => __( 'Reset to Defaults', 'business-ai' ), 'priority' => 999, 'description' => __( 'Reset all theme customizations to their default values.', 'business-ai' ), ) ); // Dummy setting for the reset button $wp_customize->add_setting( 'business_ai_reset_dummy', array( 'default' => '', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( new Business_AI_Reset_Control( $wp_customize, 'business_ai_reset_dummy', array( 'section' => 'business_ai_reset_section', ) ) ); } add_action( 'customize_register', 'business_ai_customize_register_reset', 99 ); /** * Custom Reset Button Control */ if ( class_exists( 'WP_Customize_Control' ) ) { class Business_AI_Reset_Control extends WP_Customize_Control { public $type = 'business_ai_reset_button'; public function render_content() { ?>

admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'business_ai_reset_nonce' ), 'confirmTitle' => __( 'Reset All Settings?', 'business-ai' ), 'confirmText' => __( 'Are you sure you want to reset ALL theme settings to their defaults? This will remove all your customizations including colors, texts, and images. This action cannot be undone!', 'business-ai' ), 'confirmYes' => __( 'Yes, Reset Everything', 'business-ai' ), 'confirmNo' => __( 'Cancel', 'business-ai' ), 'resetting' => __( 'Resetting...', 'business-ai' ), 'success' => __( 'All settings have been reset to defaults. The page will now reload.', 'business-ai' ), 'error' => __( 'An error occurred. Please try again.', 'business-ai' ), ) ); } add_action( 'customize_controls_enqueue_scripts', 'business_ai_customizer_controls_js' ); /** * AJAX handler to reset theme mods */ function business_ai_reset_customizer() { // Verify nonce if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'business_ai_reset_nonce' ) ) { wp_send_json_error( 'Invalid nonce' ); } // Check permissions if ( ! current_user_can( 'edit_theme_options' ) ) { wp_send_json_error( 'Permission denied' ); } // Remove all theme mods for this theme remove_theme_mods(); wp_send_json_success(); } add_action( 'wp_ajax_business_ai_reset_customizer', 'business_ai_reset_customizer' ); /** * Convert hex color to RGB values */ function business_ai_hex_to_rgb( $hex ) { $hex = ltrim( $hex, '#' ); if ( strlen( $hex ) === 3 ) { $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2]; } return array( 'r' => hexdec( substr( $hex, 0, 2 ) ), 'g' => hexdec( substr( $hex, 2, 2 ) ), 'b' => hexdec( substr( $hex, 4, 2 ) ), ); } /** * Output custom color CSS variables via wp_add_inline_style. */ function business_ai_custom_colors_css() { $primary = get_theme_mod( 'business_ai_color_primary', '#7c3aed' ); $primary_dark = get_theme_mod( 'business_ai_color_primary_dark', '#5b21b6' ); $secondary = get_theme_mod( 'business_ai_color_secondary', '#8b5cf6' ); $accent = get_theme_mod( 'business_ai_color_accent', '#a78bfa' ); $dark = get_theme_mod( 'business_ai_color_dark', '#18181b' ); $darker = get_theme_mod( 'business_ai_color_darker', '#0f0f1a' ); $light = get_theme_mod( 'business_ai_color_light', '#ffffff' ); $gray = get_theme_mod( 'business_ai_color_gray', '#52525b' ); $star = get_theme_mod( 'business_ai_color_star', '#fbbf24' ); // Convert colors to RGB for rgba() usage. $primary_rgb = business_ai_hex_to_rgb( $primary ); $primary_dark_rgb = business_ai_hex_to_rgb( $primary_dark ); $secondary_rgb = business_ai_hex_to_rgb( $secondary ); $accent_rgb = business_ai_hex_to_rgb( $accent ); $dark_rgb = business_ai_hex_to_rgb( $dark ); $darker_rgb = business_ai_hex_to_rgb( $darker ); $css = ':root {' . '--primary: ' . esc_attr( $primary ) . ';' . '--primary-dark: ' . esc_attr( $primary_dark ) . ';' . '--secondary: ' . esc_attr( $secondary ) . ';' . '--accent: ' . esc_attr( $accent ) . ';' . '--dark: ' . esc_attr( $dark ) . ';' . '--darker: ' . esc_attr( $darker ) . ';' . '--light: ' . esc_attr( $light ) . ';' . '--gray: ' . esc_attr( $gray ) . ';' . '--star: ' . esc_attr( $star ) . ';' . '--primary-rgb: ' . esc_attr( $primary_rgb['r'] . ', ' . $primary_rgb['g'] . ', ' . $primary_rgb['b'] ) . ';' . '--primary-dark-rgb: ' . esc_attr( $primary_dark_rgb['r'] . ', ' . $primary_dark_rgb['g'] . ', ' . $primary_dark_rgb['b'] ) . ';' . '--secondary-rgb: ' . esc_attr( $secondary_rgb['r'] . ', ' . $secondary_rgb['g'] . ', ' . $secondary_rgb['b'] ) . ';' . '--accent-rgb: ' . esc_attr( $accent_rgb['r'] . ', ' . $accent_rgb['g'] . ', ' . $accent_rgb['b'] ) . ';' . '--dark-rgb: ' . esc_attr( $dark_rgb['r'] . ', ' . $dark_rgb['g'] . ', ' . $dark_rgb['b'] ) . ';' . '--darker-rgb: ' . esc_attr( $darker_rgb['r'] . ', ' . $darker_rgb['g'] . ', ' . $darker_rgb['b'] ) . ';'; // Background style. $bg_style = get_theme_mod( 'business_ai_bg_style', 'gradient' ); if ( 'solid' === $bg_style ) { $bg_color = get_theme_mod( 'business_ai_bg_color', '#ffffff' ); $css .= '--body-bg: ' . esc_attr( $bg_color ) . ';'; } $css .= '}'; wp_add_inline_style( 'business-ai-style', $css ); } add_action( 'wp_enqueue_scripts', 'business_ai_custom_colors_css', 20 ); /** * Sanitize font family selection */ function business_ai_sanitize_bg_style( $input ) { $valid = array( 'gradient', 'solid' ); if ( in_array( $input, $valid, true ) ) { return $input; } return 'gradient'; } /** * Sanitize font family selection */ function business_ai_sanitize_font_family( $input ) { $valid = array( 'system', 'sans', 'serif', 'mono', 'rounded' ); if ( in_array( $input, $valid, true ) ) { return $input; } return 'system'; } /** * Output typography CSS via wp_add_inline_style. */ function business_ai_typography_css() { $font = get_theme_mod( 'business_ai_font_family', 'system' ); $font_stacks = array( 'system' => '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif', 'sans' => '"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif', 'serif' => 'Georgia, Cambria, "Times New Roman", Times, serif', 'mono' => 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace', 'rounded' => 'system-ui, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif', ); if ( isset( $font_stacks[ $font ] ) && 'system' !== $font ) { $css = 'body, button, input, select, textarea { font-family: ' . $font_stacks[ $font ] . '; }'; wp_add_inline_style( 'business-ai-style', $css ); } } add_action( 'wp_enqueue_scripts', 'business_ai_typography_css', 21 ); /** * Register selective refresh partials and postMessage transport for all content settings. */ function business_ai_selective_refresh_partials( $wp_customize ) { // Set postMessage transport for all content settings. $postmessage_settings = array( 'business_ai_header_cta_text', 'business_ai_hero_badge_text', 'business_ai_hero_title', 'business_ai_hero_subtitle', 'business_ai_hero_btn_primary_text', 'business_ai_hero_btn_secondary_text', 'business_ai_logos_title', 'business_ai_services_title', 'business_ai_services_subtitle', 'business_ai_about_title', 'business_ai_about_description', 'business_ai_pricing_title', 'business_ai_pricing_subtitle', 'business_ai_testimonials_title', 'business_ai_testimonials_subtitle', 'business_ai_faq_title', 'business_ai_faq_subtitle', 'business_ai_cta_title', 'business_ai_cta_subtitle', 'business_ai_cta_btn_text', 'business_ai_cta_note', 'business_ai_footer_tagline', 'business_ai_footer_col1_title', 'business_ai_footer_col2_title', 'business_ai_footer_col3_title', 'business_ai_footer_copyright_text', 'business_ai_about_image', 'business_ai_services_badge', 'business_ai_pricing_badge', 'business_ai_testimonials_badge', 'business_ai_faq_badge', 'business_ai_chat_widget_enable', ); // Nav items for ( $i = 1; $i <= 5; $i++ ) { $postmessage_settings[] = "business_ai_nav_{$i}_text"; $postmessage_settings[] = "business_ai_nav_{$i}_url"; } for ( $i = 1; $i <= 3; $i++ ) { $postmessage_settings[] = "business_ai_hero_stat_{$i}_number"; $postmessage_settings[] = "business_ai_hero_stat_{$i}_label"; } for ( $i = 1; $i <= 6; $i++ ) { $postmessage_settings[] = "business_ai_logo_{$i}_text"; } for ( $i = 1; $i <= 6; $i++ ) { $postmessage_settings[] = "business_ai_service_{$i}_icon"; $postmessage_settings[] = "business_ai_service_{$i}_title"; $postmessage_settings[] = "business_ai_service_{$i}_desc"; } for ( $i = 1; $i <= 4; $i++ ) { $postmessage_settings[] = "business_ai_about_feature_{$i}"; } for ( $i = 1; $i <= 4; $i++ ) { $postmessage_settings[] = "business_ai_stat_{$i}_number"; $postmessage_settings[] = "business_ai_stat_{$i}_label"; } for ( $i = 1; $i <= 3; $i++ ) { $postmessage_settings[] = "business_ai_pricing_{$i}_name"; $postmessage_settings[] = "business_ai_pricing_{$i}_price"; $postmessage_settings[] = "business_ai_pricing_{$i}_period"; $postmessage_settings[] = "business_ai_pricing_{$i}_features"; $postmessage_settings[] = "business_ai_pricing_{$i}_btn_text"; $postmessage_settings[] = "business_ai_pricing_{$i}_btn_url"; $postmessage_settings[] = "business_ai_pricing_{$i}_featured"; } for ( $i = 1; $i <= 3; $i++ ) { $postmessage_settings[] = "business_ai_testimonial_{$i}_quote"; $postmessage_settings[] = "business_ai_testimonial_{$i}_name"; $postmessage_settings[] = "business_ai_testimonial_{$i}_role"; $postmessage_settings[] = "business_ai_testimonial_{$i}_avatar"; } for ( $i = 1; $i <= 5; $i++ ) { $postmessage_settings[] = "business_ai_faq_{$i}_question"; $postmessage_settings[] = "business_ai_faq_{$i}_answer"; } foreach ( $postmessage_settings as $setting_id ) { $setting = $wp_customize->get_setting( $setting_id ); if ( $setting ) { $setting->transport = 'postMessage'; } } if ( ! isset( $wp_customize->selective_refresh ) ) { return; } // --- Individual partials (simple text) --- $wp_customize->selective_refresh->add_partial( 'business_ai_header_cta_text', array( 'selector' => '.nav-cta', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_header_cta_text', __( 'Get Started', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_hero_badge_text', array( 'selector' => '.hero-badge', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_hero_badge_text', __( 'Now with AI-powered analytics', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_hero_title', array( 'selector' => '.hero h1', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_hero_title', __( 'Grow Your Business With Confidence', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_hero_subtitle', array( 'selector' => '.hero-description', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_hero_subtitle', __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_hero_btn_primary_text', array( 'selector' => '.hero-buttons .btn-primary', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_hero_btn_primary_text', __( 'Get Started', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_hero_btn_secondary_text', array( 'selector' => '.hero-buttons .btn-secondary', 'render_callback' => 'business_ai_partial_hero_btn_secondary', ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_logos_title', array( 'selector' => '.logos-title', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_logos_title', __( 'Trusted by innovative teams worldwide', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_services_title', array( 'selector' => '.services .section-header h2', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_services_title', __( 'Lorem Ipsum Dolor Sit Amet', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_services_subtitle', array( 'selector' => '.services .section-header p', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_services_subtitle', __( 'Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_about_title', array( 'selector' => '.about-content h2', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_about_title', __( 'Why Businesses Choose Us', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_about_description', array( 'selector' => '.about-content > p', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_about_description', __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_pricing_title', array( 'selector' => '.pricing .section-header h2', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_pricing_title', __( 'Lorem Ipsum Dolor', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_pricing_subtitle', array( 'selector' => '.pricing .section-header p', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_pricing_subtitle', __( 'Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_testimonials_title', array( 'selector' => '.testimonials .section-header h2', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_testimonials_title', __( 'Loved by Teams Worldwide', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_testimonials_subtitle', array( 'selector' => '.testimonials .section-header p', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_testimonials_subtitle', __( 'See what our customers have to say about their experience.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_faq_title', array( 'selector' => '.faq .section-header h2', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_faq_title', __( 'Frequently Asked Questions', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_faq_subtitle', array( 'selector' => '.faq .section-header p', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_faq_subtitle', __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_cta_title', array( 'selector' => '.cta-content h2', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_cta_title', __( 'Lorem Ipsum Dolor Sit', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_cta_subtitle', array( 'selector' => '.cta-content > p:first-of-type', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_cta_subtitle', __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_cta_btn_text', array( 'selector' => '.cta-buttons .btn-primary', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_cta_btn_text', __( 'Get Started', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_cta_note', array( 'selector' => '.cta-note', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_cta_note', __( 'Sed do eiusmod tempor', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_footer_tagline', array( 'selector' => '.footer-brand p', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_footer_tagline', __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt.', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_footer_col1_title', array( 'selector' => '.footer-top .footer-column:nth-child(2) h4', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_footer_col1_title', __( 'Lorem Ipsum', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_footer_col2_title', array( 'selector' => '.footer-top .footer-column:nth-child(3) h4', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_footer_col2_title', __( 'Dolor Sit', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_footer_col3_title', array( 'selector' => '.footer-top .footer-column:nth-child(4) h4', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_footer_col3_title', __( 'Amet', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_footer_copyright_text', array( 'selector' => '.footer-bottom p', 'render_callback' => 'business_ai_partial_footer_copyright', ) ); // Latest Posts section — pencil opens Homepage Settings (show_on_front) $show_on_front = $wp_customize->get_setting( 'show_on_front' ); if ( $show_on_front ) { $show_on_front->transport = 'postMessage'; } $wp_customize->selective_refresh->add_partial( 'business_ai_latest_posts_section', array( 'selector' => '.latest-posts', 'settings' => array( 'show_on_front' ), 'render_callback' => '__return_false', 'fallback_refresh' => true, ) ); // Navigation (fallback menu) $nav_settings = array(); for ( $i = 1; $i <= 5; $i++ ) { $nav_settings[] = "business_ai_nav_{$i}_text"; $nav_settings[] = "business_ai_nav_{$i}_url"; } $wp_customize->selective_refresh->add_partial( 'business_ai_nav_links', array( 'selector' => '.nav-links', 'settings' => $nav_settings, 'render_callback' => 'business_ai_partial_nav_links', ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_mobile_nav_links', array( 'selector' => '.mobile-nav-links', 'settings' => $nav_settings, 'render_callback' => 'business_ai_partial_mobile_nav_links', ) ); // Hero image — target the wrapper so the pencil icon is always visible $wp_customize->selective_refresh->add_partial( 'business_ai_hero_image', array( 'selector' => '.hero-image-wrapper', 'settings' => array( 'business_ai_about_image' ), 'render_callback' => 'business_ai_partial_hero_image_wrapper', 'container_inclusive' => true, ) ); // About section image $wp_customize->selective_refresh->add_partial( 'business_ai_about_image_section', array( 'selector' => '.about-visual', 'settings' => array( 'business_ai_about_image' ), 'render_callback' => 'business_ai_partial_about_visual', 'container_inclusive' => true, ) ); // Chat widget floating button — pencil opens AI Chatbot section $wp_customize->selective_refresh->add_partial( 'business_ai_chat_widget_partial', array( 'selector' => '.chat-widget', 'settings' => array( 'business_ai_chat_widget_enable' ), 'render_callback' => '__return_false', 'fallback_refresh' => true, ) ); // Section badge partials $wp_customize->selective_refresh->add_partial( 'business_ai_services_badge', array( 'selector' => '.services .section-badge', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_services_badge', __( 'Features', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_pricing_badge', array( 'selector' => '.pricing .section-badge', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_pricing_badge', __( 'Pricing', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_testimonials_badge', array( 'selector' => '.testimonials .section-badge', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_testimonials_badge', __( 'Testimonials', 'business-ai' ) ) ); }, ) ); $wp_customize->selective_refresh->add_partial( 'business_ai_faq_badge', array( 'selector' => '.faq .section-badge', 'render_callback' => function() { echo esc_html( get_theme_mod( 'business_ai_faq_badge', __( 'FAQ', 'business-ai' ) ) ); }, ) ); // --- Section-level partials --- $hero_badge_settings = array(); for ( $i = 1; $i <= 3; $i++ ) { $hero_badge_settings[] = "business_ai_hero_stat_{$i}_number"; $hero_badge_settings[] = "business_ai_hero_stat_{$i}_label"; } $wp_customize->selective_refresh->add_partial( 'business_ai_hero_badges', array( 'selector' => '.trust-badges', 'settings' => $hero_badge_settings, 'render_callback' => 'business_ai_partial_hero_badges', ) ); $logos_settings = array(); for ( $i = 1; $i <= 6; $i++ ) { $logos_settings[] = "business_ai_logo_{$i}_text"; } $wp_customize->selective_refresh->add_partial( 'business_ai_logos_marquee', array( 'selector' => '.logos-marquee', 'settings' => $logos_settings, 'render_callback' => 'business_ai_partial_logos_marquee', ) ); $services_settings = array(); for ( $i = 1; $i <= 6; $i++ ) { $services_settings[] = "business_ai_service_{$i}_icon"; $services_settings[] = "business_ai_service_{$i}_title"; $services_settings[] = "business_ai_service_{$i}_desc"; } $wp_customize->selective_refresh->add_partial( 'business_ai_services_grid', array( 'selector' => '.services-grid', 'settings' => $services_settings, 'render_callback' => 'business_ai_partial_services_grid', ) ); $about_settings = array(); for ( $i = 1; $i <= 4; $i++ ) { $about_settings[] = "business_ai_about_feature_{$i}"; } $wp_customize->selective_refresh->add_partial( 'business_ai_about_features', array( 'selector' => '.about-features', 'settings' => $about_settings, 'render_callback' => 'business_ai_partial_about_features', ) ); $stats_settings = array(); for ( $i = 1; $i <= 4; $i++ ) { $stats_settings[] = "business_ai_stat_{$i}_number"; $stats_settings[] = "business_ai_stat_{$i}_label"; } $wp_customize->selective_refresh->add_partial( 'business_ai_stats_grid', array( 'selector' => '.stats-grid', 'settings' => $stats_settings, 'render_callback' => 'business_ai_partial_stats_grid', ) ); $pricing_settings = array(); for ( $i = 1; $i <= 3; $i++ ) { $pricing_settings[] = "business_ai_pricing_{$i}_name"; $pricing_settings[] = "business_ai_pricing_{$i}_price"; $pricing_settings[] = "business_ai_pricing_{$i}_period"; $pricing_settings[] = "business_ai_pricing_{$i}_features"; $pricing_settings[] = "business_ai_pricing_{$i}_btn_text"; $pricing_settings[] = "business_ai_pricing_{$i}_btn_url"; $pricing_settings[] = "business_ai_pricing_{$i}_featured"; } $wp_customize->selective_refresh->add_partial( 'business_ai_pricing_grid', array( 'selector' => '.pricing-grid', 'settings' => $pricing_settings, 'render_callback' => 'business_ai_partial_pricing_grid', ) ); $testimonials_settings = array(); for ( $i = 1; $i <= 3; $i++ ) { $testimonials_settings[] = "business_ai_testimonial_{$i}_quote"; $testimonials_settings[] = "business_ai_testimonial_{$i}_name"; $testimonials_settings[] = "business_ai_testimonial_{$i}_role"; $testimonials_settings[] = "business_ai_testimonial_{$i}_avatar"; } $wp_customize->selective_refresh->add_partial( 'business_ai_testimonials_grid', array( 'selector' => '.testimonials-grid', 'settings' => $testimonials_settings, 'render_callback' => 'business_ai_partial_testimonials_grid', ) ); $faq_settings = array(); for ( $i = 1; $i <= 5; $i++ ) { $faq_settings[] = "business_ai_faq_{$i}_question"; $faq_settings[] = "business_ai_faq_{$i}_answer"; } $wp_customize->selective_refresh->add_partial( 'business_ai_faq_grid', array( 'selector' => '.faq-grid', 'settings' => $faq_settings, 'render_callback' => 'business_ai_partial_faq_grid', ) ); } add_action( 'customize_register', 'business_ai_selective_refresh_partials', 20 ); /** * Render callback: Desktop nav links (fallback menu). */ function business_ai_partial_nav_links() { $nav_defaults = array( 1 => array( 'text' => __( 'Lorem', 'business-ai' ), 'url' => '#services' ), 2 => array( 'text' => __( 'Ipsum', 'business-ai' ), 'url' => '#about' ), 3 => array( 'text' => __( 'Dolor', 'business-ai' ), 'url' => '#testimonials' ), 4 => array( 'text' => __( 'Sit Amet', 'business-ai' ), 'url' => '#pricing' ), 5 => array( 'text' => __( 'Consectetur', 'business-ai' ), 'url' => '#faq' ), ); for ( $i = 1; $i <= 5; $i++ ) : $text = get_theme_mod( "business_ai_nav_{$i}_text", $nav_defaults[ $i ]['text'] ); $url = get_theme_mod( "business_ai_nav_{$i}_url", $nav_defaults[ $i ]['url'] ); if ( $text ) : ?>
  • array( 'text' => __( 'Lorem', 'business-ai' ), 'url' => '#services' ), 2 => array( 'text' => __( 'Ipsum', 'business-ai' ), 'url' => '#about' ), 3 => array( 'text' => __( 'Dolor', 'business-ai' ), 'url' => '#testimonials' ), 4 => array( 'text' => __( 'Sit Amet', 'business-ai' ), 'url' => '#pricing' ), 5 => array( 'text' => __( 'Consectetur', 'business-ai' ), 'url' => '#faq' ), ); for ( $i = 1; $i <= 5; $i++ ) : $text = get_theme_mod( "business_ai_nav_{$i}_text", $nav_defaults[ $i ]['text'] ); $url = get_theme_mod( "business_ai_nav_{$i}_url", $nav_defaults[ $i ]['url'] ); if ( $text ) : ?>
  • <?php esc_attr_e( 'Hero image', 'business-ai' ); ?>
    'M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z', 2 => 'M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z', 3 => 'M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z', ); $stat_defaults = array( 1 => array( 'number' => '150+', 'label' => __( 'Lorem Ipsum', 'business-ai' ) ), 2 => array( 'number' => '99.9%', 'label' => __( 'Dolor Sit Amet', 'business-ai' ) ), 3 => array( 'number' => '24/7', 'label' => __( 'Consectetur', 'business-ai' ) ), ); for ( $i = 1; $i <= 3; $i++ ) : $stat_number = get_theme_mod( "business_ai_hero_stat_{$i}_number", $stat_defaults[ $i ]['number'] ); if ( empty( $stat_number ) ) continue; ?>
    'Lorem', 2 => 'Ipsum', 3 => 'Dolor', 4 => 'Sit Amet', 5 => 'Consectetur', 6 => 'Adipiscing', ); for ( $track = 0; $track < 2; $track++ ) : ?>
    array( 'icon' => 'M13 10V3L4 14h7v7l9-11h-7z', 'title' => __( 'Lorem Ipsum', 'business-ai' ), 'desc' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.', 'business-ai' ) ), 2 => array( 'icon' => 'M9 19v-6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2zm0 0V9a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v10m-6 0a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2m0 0V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2z', 'title' => __( 'Dolor Sit', 'business-ai' ), 'desc' => __( 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat.', 'business-ai' ) ), 3 => array( 'icon' => 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z', 'title' => __( 'Consectetur', 'business-ai' ), 'desc' => __( 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit.', 'business-ai' ) ), 4 => array( 'icon' => 'M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM23 21v-2a4 4 0 0 0-3-3.87M17 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z', 'title' => __( 'Adipiscing', 'business-ai' ), 'desc' => __( 'Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit sed quia.', 'business-ai' ) ), 5 => array( 'icon' => 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z', 'title' => __( 'Tempor', 'business-ai' ), 'desc' => __( 'Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae.', 'business-ai' ) ), 6 => array( 'icon' => 'M3 18v-6a9 9 0 0 1 18 0v6M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z', 'title' => __( 'Incididunt', 'business-ai' ), 'desc' => __( 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet consectetur adipisci velit.', 'business-ai' ) ), ); for ( $i = 1; $i <= 6; $i++ ) : $service_icon = get_theme_mod( "business_ai_service_{$i}_icon", $service_defaults[ $i ]['icon'] ); $service_title = get_theme_mod( "business_ai_service_{$i}_title", $service_defaults[ $i ]['title'] ); $service_desc = get_theme_mod( "business_ai_service_{$i}_desc", $service_defaults[ $i ]['desc'] ); if ( empty( $service_title ) ) continue; ?>

    __( 'Lorem ipsum dolor sit', 'business-ai' ), 2 => __( 'Consectetur adipiscing', 'business-ai' ), 3 => __( 'Sed do eiusmod tempor', 'business-ai' ), 4 => __( 'Ut labore et dolore magna', 'business-ai' ), ); for ( $i = 1; $i <= 4; $i++ ) : $feature = get_theme_mod( "business_ai_about_feature_{$i}", $feature_defaults[ $i ] ); if ( empty( $feature ) ) continue; ?>
    array( 'number' => '10K+', 'label' => __( 'Lorem Ipsum', 'business-ai' ) ), 2 => array( 'number' => '50+', 'label' => __( 'Dolor Sit Amet', 'business-ai' ) ), 3 => array( 'number' => '99.9%', 'label' => __( 'Consectetur Adipiscing', 'business-ai' ) ), 4 => array( 'number' => '24/7', 'label' => __( 'Sed Do Eiusmod', 'business-ai' ) ), ); for ( $i = 1; $i <= 4; $i++ ) : $stat_number = get_theme_mod( "business_ai_stat_{$i}_number", $stat_defaults[ $i ]['number'] ); $stat_label = get_theme_mod( "business_ai_stat_{$i}_label", $stat_defaults[ $i ]['label'] ); if ( empty( $stat_number ) ) continue; ?>

    array( 'name' => __( 'Lorem', 'business-ai' ), 'price' => __( '$29', 'business-ai' ), 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum dolor\nSed do eiusmod\nConsectetur adipiscing\nUt labore et dolore\nMagna aliqua", 'business-ai' ), 'btn_text' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => false, ), 2 => array( 'name' => __( 'Ipsum', 'business-ai' ), 'price' => __( '$99', 'business-ai' ), 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum dolor\nSed do eiusmod\nConsectetur adipiscing\nUt labore et dolore\nMagna aliqua\nTempor incididunt", 'business-ai' ), 'btn_text' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => true, ), 3 => array( 'name' => __( 'Dolor', 'business-ai' ), 'price' => __( '$299', 'business-ai' ), 'period' => __( '/month', 'business-ai' ), 'features' => __( "Lorem ipsum dolor\nSed do eiusmod\nConsectetur adipiscing\nUt labore et dolore\nMagna aliqua\nTempor incididunt", 'business-ai' ), 'btn_text' => __( 'Lorem Ipsum', 'business-ai' ), 'featured' => false, ), ); for ( $i = 1; $i <= 3; $i++ ) : $name = get_theme_mod( "business_ai_pricing_{$i}_name", $pricing_defaults[ $i ]['name'] ); if ( empty( $name ) ) continue; $price = get_theme_mod( "business_ai_pricing_{$i}_price", $pricing_defaults[ $i ]['price'] ); $period = get_theme_mod( "business_ai_pricing_{$i}_period", $pricing_defaults[ $i ]['period'] ); $features = get_theme_mod( "business_ai_pricing_{$i}_features", $pricing_defaults[ $i ]['features'] ); $btn_text = get_theme_mod( "business_ai_pricing_{$i}_btn_text", $pricing_defaults[ $i ]['btn_text'] ); $btn_url = get_theme_mod( "business_ai_pricing_{$i}_btn_url", '#contact' ); $featured = get_theme_mod( "business_ai_pricing_{$i}_featured", $pricing_defaults[ $i ]['featured'] ); $features_array = explode( "\n", $features ); ?>
    array( 'quote' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'business-ai' ), 'name' => __( 'Jane Doe', 'business-ai' ), 'role' => __( 'Lorem Ipsum', 'business-ai' ), 'avatar' => 'JD', ), 2 => array( 'quote' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 'business-ai' ), 'name' => __( 'John Smith', 'business-ai' ), 'role' => __( 'Dolor Sit Amet', 'business-ai' ), 'avatar' => 'JS', ), 3 => array( 'quote' => __( 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.', 'business-ai' ), 'name' => __( 'Alex Johnson', 'business-ai' ), 'role' => __( 'Consectetur', 'business-ai' ), 'avatar' => 'AJ', ), ); for ( $i = 1; $i <= 3; $i++ ) : $testimonial_quote = get_theme_mod( "business_ai_testimonial_{$i}_quote", $testimonial_defaults[ $i ]['quote'] ); $testimonial_name = get_theme_mod( "business_ai_testimonial_{$i}_name", $testimonial_defaults[ $i ]['name'] ); if ( empty( $testimonial_name ) ) continue; $testimonial_role = get_theme_mod( "business_ai_testimonial_{$i}_role", $testimonial_defaults[ $i ]['role'] ); $testimonial_avatar = get_theme_mod( "business_ai_testimonial_{$i}_avatar", $testimonial_defaults[ $i ]['avatar'] ); ?>
    ★★★★★

    ""

    array( 'question' => __( 'Lorem ipsum dolor sit amet?', 'business-ai' ), 'answer' => __( 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 'business-ai' ), ), 2 => array( 'question' => __( 'Consectetur adipiscing elit?', 'business-ai' ), 'answer' => __( 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.', 'business-ai' ), ), 3 => array( 'question' => __( 'Sed do eiusmod tempor incididunt?', 'business-ai' ), 'answer' => __( 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', 'business-ai' ), ), 4 => array( 'question' => __( 'Ut labore et dolore magna aliqua?', 'business-ai' ), 'answer' => __( 'Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores.', 'business-ai' ), ), 5 => array( 'question' => __( 'Quis autem vel eum iure?', 'business-ai' ), 'answer' => __( 'Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.', 'business-ai' ), ), ); $faq_count = 0; for ( $i = 1; $i <= 5; $i++ ) : $question = get_theme_mod( "business_ai_faq_{$i}_question", $faq_defaults[ $i ]['question'] ); $answer = get_theme_mod( "business_ai_faq_{$i}_answer", $faq_defaults[ $i ]['answer'] ); if ( empty( $question ) ) continue; $faq_count++; ?>