80, 'width' => 100, )); add_theme_support('automatic-feed-links'); register_nav_menus(array( 'primary' => __('Primary Menu', 'bizhub'), )); } add_action('after_setup_theme', 'bizhub_setup'); function bizhub_default_menus() { // Check if the menu already exists to avoid duplicates $primary_menu_exists = wp_get_nav_menu_object('Primary Menu'); // Create Main Menu if it doesn't exist if (!$primary_menu_exists) { $main_menu_id = wp_create_nav_menu('Primary Menu'); // Add a sample item to the main menu wp_update_nav_menu_item($main_menu_id, 0, array( 'menu-item-title' => __('About','bizhub'), 'menu-item-url' => home_url('/about'), 'menu-item-status' => 'publish' )); // Top-level item: Services $services_item_id = wp_update_nav_menu_item($main_menu_id, 0, array( 'menu-item-title' => __('Services', 'bizhub'), 'menu-item-url' => '#', 'menu-item-status' => 'publish' )); // Submenu: Web Design (child of Services) wp_update_nav_menu_item($main_menu_id, 0, array( 'menu-item-title' => __('Web Design', 'bizhub'), 'menu-item-url' => home_url('/web-design'), 'menu-item-status' => 'publish', 'menu-item-parent-id' => $services_item_id )); // Submenu: SEO (child of Services) wp_update_nav_menu_item($main_menu_id, 0, array( 'menu-item-title' => __('SEO','bizhub'), 'menu-item-url' => home_url('/seo'), 'menu-item-status' => 'publish', 'menu-item-parent-id' => $services_item_id )); wp_update_nav_menu_item($main_menu_id, 0, array( 'menu-item-title' => __('Contact','bizhub'), 'menu-item-url' => home_url('/contact'), 'menu-item-status' => 'publish' )); // Assign the menu to a theme location $locations = get_theme_mod('nav_menu_locations'); $locations['primary'] = $main_menu_id; set_theme_mod('nav_menu_locations', $locations); } } add_action('after_switch_theme', 'bizhub_default_menus'); function bizhub_add_editor_styles() { add_editor_style('editor-style.css'); } add_action('after_setup_theme', 'bizhub_add_editor_styles'); function bizhub_enqueue_comment_reply_script() { if (is_singular() && comments_open() && get_option('thread_comments')) { wp_enqueue_script('comment-reply'); } } add_action('wp_enqueue_scripts', 'bizhub_enqueue_comment_reply_script'); function bizhub_enqueue_customizer_scripts() { wp_enqueue_script('bizhub-customizer-js', get_template_directory_uri() . '/assets/js/customizer.js', ['jquery', 'wp-mediaelement'], '', true); } add_action('customize_controls_enqueue_scripts', 'bizhub_enqueue_customizer_scripts'); function bizhub_enqueue_scripts(): void { wp_enqueue_style('bizhub-style', get_stylesheet_uri()); wp_enqueue_style('bizhub-custom-style', get_template_directory_uri() . '/assets/css/bizhub-style.css'); wp_enqueue_style('font-awesome', get_template_directory_uri(). '/assets/fontawesome/css/all.min.css', array(), '6.7.2', null); wp_enqueue_script('bizhub-custom-js', get_template_directory_uri() . '/assets/js/script.js', array('jquery'), false, true); } add_action('wp_enqueue_scripts', 'bizhub_enqueue_scripts'); function bizhub_customize_register($wp_customize) { require_once get_template_directory() . '/inc/customizer-repeater.php'; $wp_customize->add_panel('frontpage_panel', array( 'title' => __('Theme Sections Settings', 'bizhub'), 'priority' => 30, 'active_callback' => 'bizhub_is_customizing_front_page', )); // Hero Section Panel $wp_customize->add_section('bizhub_hero_section', array( 'title' => __('Hero Section', 'bizhub'), 'priority' => 30, 'panel' => 'frontpage_panel', )); // Menu CTA Button $wp_customize->add_setting('bizhub_menu_cta_button_text', array( 'default' => 'Get Started', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_menu_cta_button_text_control', array( 'label' => __('Menu CTA Button Text', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_menu_cta_button_text', 'type' => 'text', )); // Menu CTA Button URL $wp_customize->add_setting('bizhub_menu_cta_button_url', array( 'default' => 'Get Started', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control('bizhub_menu_cta_button_url_control', array( 'label' => __('Menu CTA Button Link', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_menu_cta_button_url', 'type' => 'url', )); // Background Image $wp_customize->add_setting('bizhub_hero_bg_image', array( 'default' => get_template_directory_uri() . '/assets/images/hero-bg.jpg', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'bizhub_hero_bg_image_control', array( 'label' => __('Background Image', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_hero_bg_image', ))); // Hero Title $wp_customize->add_setting('bizhub_hero_title', array( 'default' => 'TIME TO CREATE', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_hero_title_control', array( 'label' => __('Hero Title', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_hero_title', 'type' => 'text', )); // Hero Subtext $wp_customize->add_setting('bizhub_hero_subtext', array( 'default' => 'BizHub is a modern, responsive WordPress theme built for small businesses, digital agencies, and startups. Designed with flexibility and simplicity in mind, BizHub helps you launch a clean and professional website in minutes.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_hero_subtext_control', array( 'label' => __('Hero Subtext', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_hero_subtext', 'type' => 'textarea', )); // Button 1 Text $wp_customize->add_setting('bizhub_hero_button1_text', array( 'default' => 'Get Started', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_hero_button1_text_control', array( 'label' => __('Button 1 Text', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_hero_button1_text', 'type' => 'text', )); // Button 1 URL $wp_customize->add_setting('bizhub_hero_button1_url', array( 'default' => '#', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control('bizhub_hero_button1_url_control', array( 'label' => __('Button 1 URL', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_hero_button1_url', 'type' => 'url', )); // Button 2 Text $wp_customize->add_setting('bizhub_hero_button2_text', array( 'default' => 'Learn More', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_hero_button2_text_control', array( 'label' => __('Button 2 Text', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_hero_button2_text', 'type' => 'text', )); // Button 2 URL $wp_customize->add_setting('bizhub_hero_button2_url', array( 'default' => '#', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control('bizhub_hero_button2_url_control', array( 'label' => __('Button 2 URL', 'bizhub'), 'section' => 'bizhub_hero_section', 'settings' => 'bizhub_hero_button2_url', 'type' => 'url', )); // About Us Section $wp_customize->add_section('bizhub_about_us_section', array( 'title' => __('About Us Section', 'bizhub'), 'priority' => 34, 'panel' => 'frontpage_panel', )); $wp_customize->add_setting('bizhub_about_us_title', array( 'default'=> 'About Us', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_about_us_title_control', array( 'label' => __('About Us Title', 'bizhub'), 'section' => 'bizhub_about_us_section', 'settings' => 'bizhub_about_us_title', 'type' => 'text', )); $wp_customize->add_setting('bizhub_about_us_subtext', array( 'default' => 'BizHub is a modern, responsive WordPress theme built for small businesses, digital agencies, and startups. Designed with flexibility and simplicity in mind, BizHub helps you launch a clean and professional website in minutes.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_about_us_subtext_control', array( 'label' => __('About Us SubText', 'bizhub'), 'section' => 'bizhub_about_us_section', 'settings' =>'bizhub_about_us_subtext', 'type' => 'textarea', )); $wp_customize->add_setting('bizhub_about_us_text', array( 'default' => 'Whether showcasing services, creating a portfolio, or writing blog content, BizHub gives you the structure you need without overwhelming complexity.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_about_us_text_control', array( 'label' => __('About Us Text', 'bizhub'), 'section' => 'bizhub_about_us_section', 'settings' =>'bizhub_about_us_text', 'type' => 'textarea', )); $wp_customize->add_setting('bizhub_about_us_url_text', array( 'default'=>'Read More', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_about_us_url_text_control', array( 'label'=>__('About Us url Text', 'bizhub'), 'section'=>'bizhub_about_us_section', 'settings'=>'bizhub_about_us_url_text', 'type'=>'text', )); $wp_customize->add_setting('bizhub_about_us_url', array( 'default'=>'#', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control('bizhub_about_us_url_control', array( 'label'=>__('About Us Url', 'bizhub'), 'section'=>'bizhub_about_us_section', 'settings'=>'bizhub_about_us_url', 'type'=>'url', )); $wp_customize->add_setting('bizhub_about_us_image',array( 'default'=>get_template_directory_uri() . '/assets/images/about-us.jpeg', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'bizhub_about_us_image_control', array( 'label' => __('About Us Image', 'bizhub'), 'section' => 'bizhub_about_us_section', 'settings' => 'bizhub_about_us_image', ))); // Middle Section $wp_customize->add_section('bizhub_middle_section', array( 'title' => __('Middle Section', 'bizhub'), 'priority' => 38, 'panel' => 'frontpage_panel', )); // Default data for middle section repeater $default_middle_section = json_encode(array( array( 'title' => 'Dynamic Design Showcase', 'middle_subtext' => 'Donec volutpat vel ipsum at posuere. Mauris vitae vulputate erat viverra, pretium massa. Curabitur posuere at lorem vel ullamcorper.', 'middle_text' => 'Phasellus justo risus, dignissim sit amet tellus ac, accumsan hendrerit mauris. Nullam ultricies, urna cursus facilisis posuere, diam nisl egestas erat, vitae posuere est quam ut diam. Etiam pulvinar sit amet mi a vehicula.', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-4.jpeg', 'link_text' => 'Learn More', 'middle_section_link'=> '#', ), array( 'title' => 'Collaborative Project Hub', 'middle_subtext' => 'Donec volutpat vel ipsum at posuere. Mauris vitae vulputate erat viverra, pretium massa. Curabitur posuere at lorem vel ullamcorper.', 'middle_text' => 'Phasellus justo risus, dignissim sit amet tellus ac, accumsan hendrerit mauris. Nullam ultricies, urna cursus facilisis posuere, diam nisl egestas erat, vitae posuere est quam ut diam. Etiam pulvinar sit amet mi a vehicula.', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-5.jpeg', 'link_text' => 'Learn More', 'middle_section_link'=> '#', ), )); $wp_customize->add_setting('bizhub_middle_repeater', array( 'default' => $default_middle_section, 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_middle_repeater', array( 'label' => __('Middle Section', 'bizhub'), 'section' => 'bizhub_middle_section', 'fields' => array( array('id' => 'title', 'type' => 'text', 'label' => 'Middle Section Title'), array('id' => 'middle_subtext', 'type' => 'text', 'label' => 'Section Text 1'), array('id' => 'middle_text', 'type' => 'text', 'label' => 'Section Text 2'), array('id' => 'image', 'type' => 'image', 'label' => 'Section Image'), array('id' => 'link_text', 'type' => 'text', 'label' => 'Link Text'), array('id' => 'middle_section_link', 'type' => 'url', 'label' => 'Section Link'), ), ))); // Contact Section $wp_customize->add_section('bizhub_contact_section', array( 'title' => __('Contact Section', 'bizhub'), 'priority' => 50, 'panel' => 'frontpage_panel', )); $wp_customize->add_setting('bizhub_contact_title', array( 'default'=> 'Contact Us', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_contact_title_control', array( 'label' => __('Contact Title', 'bizhub'), 'section' => 'bizhub_contact_section', 'settings' => 'bizhub_contact_title', 'type' => 'text', )); $wp_customize->add_setting('bizhub_contact_subtext', array( 'default' => 'Our customer support is just a ring away!', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_contact_subtext_control', array( 'label' => __('Contact SubText', 'bizhub'), 'section' => 'bizhub_contact_section', 'settings' =>'bizhub_contact_subtext', 'type' => 'textarea', )); $wp_customize->add_setting('bizhub_contact_email', array( 'default' => 'hello@yourdomain.com', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_email', )); $wp_customize->add_control('bizhub_contact_email_control', array( 'label' => __('Contact Email', 'bizhub'), 'section' => 'bizhub_contact_section', 'settings' =>'bizhub_contact_email', 'type' => 'text', )); $wp_customize->add_setting('bizhub_contact_number', array( 'default' => '+123 456 7890', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_contact_number_control', array( 'label' => __('Contact Number(s)', 'bizhub'), 'section' => 'bizhub_contact_section', 'settings' =>'bizhub_contact_number', 'type' => 'tel', )); $wp_customize->add_setting('bizhub_contact_address', array( 'default' => '123 Main Street,My City', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_contact_address_control', array( 'label' => __('Contact Address', 'bizhub'), 'section' => 'bizhub_contact_section', 'settings' =>'bizhub_contact_address', 'type' => 'textarea', )); $wp_customize->add_setting('bizhub_linkedin_url', array( 'default'=>'https://linkedin.com/', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control('bizhub_linkedin_url_control', array( 'label'=>__('Linkedin Link', 'bizhub'), 'section'=>'bizhub_contact_section', 'settings'=>'bizhub_linkedin_url', 'type'=>'url', )); $wp_customize->add_setting('bizhub_facebook_url', array( 'default'=>'https://facebook.com/', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control('bizhub_facebook_url_control', array( 'label'=>__('Facebook Link', 'bizhub'), 'section'=>'bizhub_contact_section', 'settings'=>'bizhub_facebook_url', 'type'=>'url', )); $wp_customize->add_setting('bizhub_twitter_url', array( 'default'=>'https://x.com/', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control('bizhub_twitter_url_control', array( 'label'=>__('Twitter / X Link', 'bizhub'), 'section'=>'bizhub_contact_section', 'settings'=>'bizhub_twitter_url', 'type'=>'url', )); $wp_customize->add_setting('bizhub_map_url', array( 'default'=>'', 'transport' => 'refresh', 'sanitize_callback' => 'bizhub_safe_map_output', )); $wp_customize->add_control('bizhub_map_url_control', array( 'label'=>__('Paste your Map link', 'bizhub'), 'section'=>'bizhub_contact_section', 'settings'=>'bizhub_map_url', 'type'=>'textarea', )); $wp_customize->add_setting('bizhub_contact_bg_image',array( 'default'=> get_template_directory_uri() . '/assets/images/contact-bg.jpg', 'transport' => 'refresh', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'bizhub_contact_bg_image_control', array( 'label' => __('Contact Background Image', 'bizhub'), 'section' => 'bizhub_contact_section', 'settings' => 'bizhub_contact_bg_image', ))); // Custom sanitize callback for repeater JSON function bizhub_sanitize_repeater($input) { // Check if input is valid JSON json_decode($input); return (json_last_error() === JSON_ERROR_NONE) ? $input : '[]'; } // Team Section $wp_customize->add_section('bizhub_team_section', array( 'title' => __('Team Section', 'bizhub'), 'priority' => 42, 'panel' => 'frontpage_panel', )); // Title setting and control $wp_customize->add_setting('bizhub_team_title', array( 'default' => 'Our Team', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_team_title_control', array( 'label' => __('Title', 'bizhub'), 'section' => 'bizhub_team_section', 'settings' => 'bizhub_team_title', )); // Title paragraph setting and control $wp_customize->add_setting('bizhub_team_title_para', array( 'default' => 'Say something about your team members.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_team_title_para_control', array( 'label' => __('Title Text', 'bizhub'), 'section' => 'bizhub_team_section', 'settings' => 'bizhub_team_title_para', )); // Default team members data as PHP array $default_team = [ [ 'name' => 'Samantha Doe', 'role' => 'LEAD STRATEGIST', 'image' => get_template_directory_uri() . '/assets/images/t1.jpg', 'linkedin' => 'https://linkedin.com/', 'twitter' => 'https://twitter.com/', 'facebook' => 'https://facebook.com/', ], [ 'name' => 'Olivia Rodriguez', 'role' => 'FINANCIAL ANALYST', 'image' => get_template_directory_uri() . '/assets/images/t2.jpg', 'linkedin' => 'https://linkedin.com/', 'twitter' => 'https://twitter.com/', 'facebook' => 'https://facebook.com/', ], [ 'name' => 'Evans Parker', 'role' => 'WEB DEVELOPER', 'image' => get_template_directory_uri() . '/assets/images/t3.jpg', 'linkedin' => 'https://linkedin.com/', 'twitter' => 'https://twitter.com', 'facebook' => 'https://facebook.com/', ], ]; // Encode default team as JSON string $default_team_json = wp_json_encode($default_team); // Repeater setting and control $wp_customize->add_setting('bizhub_team_repeater', array( 'default' => $default_team_json, 'sanitize_callback' => 'bizhub_sanitize_repeater', )); $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_team_repeater', array( 'label' => __('Team', 'bizhub'), 'section' => 'bizhub_team_section', 'fields' => array( array('id' => 'name', 'type' => 'text', 'label' => 'Team Member Name'), array('id' => 'role', 'type' => 'text', 'label' => 'Role'), array('id' => 'image', 'type' => 'image', 'label' => 'Profile Picture'), array('id' => 'linkedin', 'type' => 'url', 'label' => 'LinkedIn Profile'), array('id' => 'facebook', 'type' => 'url', 'label' => 'Facebook Profile'), array('id' => 'twitter', 'type' => 'url', 'label' => 'Twitter Profile'), ), ))); // Services Section $wp_customize->add_section('bizhub_services_section', array( 'title' => __('Services Section', 'bizhub'), 'priority' => 40, 'panel' => 'frontpage_panel', )); // Title $wp_customize->add_setting('bizhub_service_title', array( 'default' => 'Our Services', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_service_title_control', array( 'label' => __('Title', 'bizhub'), 'section' => 'bizhub_services_section', 'settings' => 'bizhub_service_title', )); // Paragraph $wp_customize->add_setting('bizhub_service_title_para', array( 'default' => 'What we offer to help your business grow.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_service_title_para_control', array( 'label' => __('Title Text', 'bizhub'), 'section' => 'bizhub_services_section', 'settings' => 'bizhub_service_title_para', )); // Default Repeater Data $default_services = json_encode(array( array( 'title' => 'Web Design', 'description' => 'We create stunning, responsive websites tailored to your business goals.', 'image' => get_template_directory_uri() . '/assets/images/cake.png', ), array( 'title' => 'SEO Optimization', 'description' => 'Improve your visibility on search engines and drive more traffic.', 'image' => get_template_directory_uri() . '/assets/images/calendar_1292890.png', ), array( 'title' => 'E-Commerce', 'description' => 'Launch your online store with our secure and user-friendly solutions.', 'image' => get_template_directory_uri() . '/assets/images/bicycle.png', ), )); $wp_customize->add_setting('bizhub_service_repeater', array( 'default' => $default_services, 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_service_repeater', array( 'label' => __('Services', 'bizhub'), 'section' => 'bizhub_services_section', 'fields' => array( array('id' => 'title', 'type' => 'text', 'label' => 'Service Title'), array('id' => 'description', 'type' => 'textarea', 'label' => 'Description'), array('id' => 'image', 'type' => 'image', 'label' => 'Service Image'), ), ))); // Portfolio Section $wp_customize->add_section('bizhub_portfolio_section', array( 'title' => __('Portfolio Section', 'bizhub'), 'priority' => 46, 'panel' => 'frontpage_panel', )); // Portfolio Title $wp_customize->add_setting('bizhub_portfolio_title', array( 'default' => 'Our Portfolio', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_portfolio_title_control', array( 'label' => __('Title', 'bizhub'), 'section' => 'bizhub_portfolio_section', 'settings' => 'bizhub_portfolio_title', )); // Portfolio Paragraph $wp_customize->add_setting('bizhub_portfolio_title_para', array( 'default' => 'Check out some of our featured projects below.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_portfolio_title_para_control', array( 'label' => __('Title Text', 'bizhub'), 'section' => 'bizhub_portfolio_section', 'settings' => 'bizhub_portfolio_title_para', )); // Default Repeater Data for Portfolio $default_portfolio_data = json_encode(array( array( 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-18-300x300-1.jpeg', 'project_name' => 'Sky Project', 'project_link' => '#', ), array( 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-10.jpeg', 'project_name' => 'Sun Project', 'project_link' => '#', ), array( 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-9.jpeg', 'project_name' => 'Moon Project', 'project_link' => '#', ), )); $wp_customize->add_setting('bizhub_portfolio_repeater', array( 'default' => $default_portfolio_data, 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_portfolio_repeater', array( 'label' => __('Portfolio', 'bizhub'), 'section' => 'bizhub_portfolio_section', 'fields' => array( array('id' => 'image', 'type' => 'image', 'label' => 'Project Image'), array('id' => 'project_name', 'type' => 'text', 'label' => 'Project Name'), array('id' => 'project_link', 'type' => 'url', 'label' => 'Project Link'), ), ))); // Testimonial Section $wp_customize->add_section('bizhub_testimonial_section', array( 'title' => __('Testimonial Section', 'bizhub'), 'priority' => 48, 'panel' => 'frontpage_panel', )); // Title $wp_customize->add_setting('bizhub_testimonial_title', array( 'default' => 'What Our Clients Say', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_testimonial_title_control', array( 'label' => __('Title', 'bizhub'), 'section' => 'bizhub_testimonial_section', 'settings' => 'bizhub_testimonial_title', )); // Paragraph $wp_customize->add_setting('bizhub_testimonial_title_para', array( 'default' => 'Hear from some of our satisfied clients.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_testimonial_title_para_control', array( 'label' => __('Title Text', 'bizhub'), 'section' => 'bizhub_testimonial_section', 'settings' => 'bizhub_testimonial_title_para', )); // Default Repeater Data $default_testimonials = json_encode(array( array( 'name' => 'Jane Doe', 'description' => 'Working with this team was a pleasure. They delivered on time and exceeded expectations!', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-13.jpeg', ), array( 'name' => 'Michael Smith', 'description' => 'Their service transformed our online presence. Highly recommended.', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-14.jpeg', ), array( 'name' => 'Fatima Ahmed', 'description' => 'A reliable and talented team. Communication was smooth from start to finish.', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-12.jpeg', ), )); $wp_customize->add_setting('bizhub_testimonial_repeater', array( 'default' => $default_testimonials, 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_testimonial_repeater', array( 'label' => __('Testimonials', 'bizhub'), 'section' => 'bizhub_testimonial_section', 'fields' => array( array('id' => 'name', 'type' => 'text', 'label' => 'Testimonial Giver Name'), array('id' => 'description', 'type' => 'textarea', 'label' => 'Testimonial Description'), array('id' => 'image', 'type' => 'image', 'label' => 'Testimonial Giver Image'), ), ))); // Features Section $wp_customize->add_section('bizhub_features_section', array( 'title' => __('Feature Section', 'bizhub'), 'priority' => 32, 'panel' => 'frontpage_panel', )); $default_features = json_encode([ [ 'feature_name' => 'Fast Performance', 'description' => 'Our platform delivers lightning-fast speeds.', 'image' => get_template_directory_uri() . '/assets/images/suitcase_4867604.png', ], [ 'feature_name' => 'Secure', 'description' => 'Top-notch security keeps your data safe.', 'image' => get_template_directory_uri() . '/assets/images/floppy-disk.png', ], [ 'feature_name' => 'Rich Features', 'description' => 'Built with rich mordern features in mind,', 'image' => get_template_directory_uri() . '/assets/images/camera_12908216.png', ], [ 'feature_name' => 'User Friendly', 'description' => 'Intuitive user-freindly interface for everyone.', 'image' => get_template_directory_uri() . '/assets/images/bicycle.png', ], ]); $wp_customize->add_setting('bizhub_feature_repeater', array( 'default' => $default_features, 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_feature_repeater', array( 'label' => __('feature', 'bizhub'), 'section' => 'bizhub_features_section', 'fields' => array( array('id' => 'feature_name', 'type' => 'text', 'label' => 'feature Name'), array('id' => 'description', 'type' => 'textarea', 'label' => 'feature Description'), array('id' => 'image', 'type' => 'image', 'label' => 'feature Image'), ), ))); // Expertise Section $wp_customize->add_section('bizhub_expertise_section', array( 'title' => __('Expertise Section', 'bizhub'), 'priority' => 36, 'panel' => 'frontpage_panel', )); // Title $wp_customize->add_setting('bizhub_expertise_title', array( 'default' => 'Our Expertise', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_expertise_title_control', array( 'label' => __('Title', 'bizhub'), 'section' => 'bizhub_expertise_section', 'settings' => 'bizhub_expertise_title', )); // Paragraph $wp_customize->add_setting('bizhub_expertise_title_para', array( 'default' => 'Brag about your expertise.', 'transport' => 'refresh', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('bizhub_expertise_title_para_control', array( 'label' => __('Title Text', 'bizhub'), 'section' => 'bizhub_expertise_section', 'settings' => 'bizhub_expertise_title_para', )); // Default Expertise Data $default_expertise = json_encode(array( array( 'expertise_name' => 'Web Development', 'description' => 'Building responsive and functional websites tailored to your business.', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-8.jpeg', 'expertise_link_text' => 'Learn More', 'expertise_link' => '#', ), array( 'expertise_name' => 'UI/UX Design', 'description' => 'Crafting user-friendly and visually appealing designs.', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-3.jpeg', 'expertise_link_text' => 'Explore Design', 'expertise_link' => '#', ), array( 'expertise_name' => 'SEO & Marketing', 'description' => 'Boosting your online presence through smart strategies.', 'image' => get_template_directory_uri() . '/assets/images/bizhub-img-2.jpeg', 'expertise_link_text' => 'Start Ranking', 'expertise_link' => '#', ), )); $wp_customize->add_setting('bizhub_expertise_repeater', array( 'default' => $default_expertise, 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_expertise_repeater', array( 'label' => __('Expertise', 'bizhub'), 'section' => 'bizhub_expertise_section', 'fields' => array( array('id' => 'expertise_name', 'type' => 'text', 'label' => 'Expertise Name'), array('id' => 'description', 'type' => 'textarea', 'label' => 'Expertise Description'), array('id' => 'image', 'type' => 'image', 'label' => 'Expertise Image'), array('id' => 'expertise_link_text', 'type' => 'text', 'label' => 'Link Text'), array('id' => 'expertise_link', 'type' => 'url', 'label' => 'Expertise Link'), ), ))); // CTA Section // CTA Section $wp_customize->add_section('bizhub_cta_section', array( 'title' => __('CTA Section', 'bizhub'), 'priority' => 44, 'panel' => 'frontpage_panel', )); // Default CTA repeater data as an array $default_cta = [ [ 'text' => 'Ready to start your ptoject?', 'description' => 'Ready to take the next step? Use this section as Click To Action section.', 'cta_button_text' => 'Contact Us', 'cta_link' => 'https://example.com/', ], ]; // Add setting with default data JSON encoded $wp_customize->add_setting('bizhub_cta_repeater', array( 'default' => json_encode($default_cta), 'sanitize_callback' => 'sanitize_text_field', )); // Add repeater control $wp_customize->add_control(new Bizhub_Customizer_Repeater($wp_customize, 'bizhub_cta_repeater', array( 'label' => __('CTA', 'bizhub'), 'section' => 'bizhub_cta_section', 'fields' => array( array('id' => 'text', 'type' => 'text', 'label' => 'Main Text'), array('id' => 'description', 'type' => 'textarea', 'label' => 'CTA Description'), array('id' => 'cta_button_text', 'type' => 'text', 'label' => 'CTA Button Text'), array('id' => 'cta_link', 'type' => 'url', 'label' => 'CTA Button Link'), ), ))); } add_action('customize_register', 'bizhub_customize_register'); // Map Output Function function bizhub_safe_map_output($content) { $allowed = wp_kses_allowed_html('post'); $allowed['iframe'] = [ 'src' => true, 'width' => true, 'height' => true, 'frameborder' => true, 'allowfullscreen' => true, 'style' => true, 'loading' => true, ]; return wp_kses($content, $allowed); } function bizhub_is_customizing_front_page() { return is_front_page() && is_customize_preview(); } function bizhub_customizer_inline_css() { ?>