fonts = $this->get_google_fonts(); parent::__construct($wp_customize, $id, $args); } public function get_google_fonts() { $content = []; $google_api_key = get_theme_mod('apadana_option_map_api'); if (!empty($google_api_key)) { $transient_name = 'apadana_google_font_list'; $saved_transient = get_transient($transient_name); if (false !== $saved_transient && !empty($saved_transient['items'])) { $content = $saved_transient; } else { $googleApi = 'https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity&key=' . esc_html($google_api_key); $fontContent = wp_remote_get($googleApi, array('sslverify' => false)); $content = json_decode($fontContent['body'], true); set_transient($transient_name, $content['items'], 0); } } return array_key_exists('items', $content) ? $content['items'] : []; } public function render_content() { ?> description ?> add_panel('apadana_general_setting', array( 'title' => esc_html__('Apadana General Settings', 'apadana'), 'description' => esc_html__('General setting of Apadana theme', 'apadana'), 'priority' => 1, )); /** * ------------------------------------------------------------------------------------------ * Main Settings * ------------------------------------------------------------------------------------------ */ $wp_customize->add_section('apadana_main_setting', array( 'title' => esc_html__('Main Settings', 'apadana'), 'description' => esc_html__('Main setting of Apadana theme', 'apadana'), 'priority' => 1, 'capability' => 'edit_theme_options', 'panel' => 'apadana_general_setting', )); $wp_customize->add_setting('apadana_option_main_logo', array( 'sanitize_callback' => 'apadana_image_input', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'apadana_option_main_logo', array( 'label' => esc_html__('Your Logo', 'apadana'), 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_main_logo', ))); $wp_customize->add_setting('apadana_option_main_logo_mobile', array( 'sanitize_callback' => 'apadana_image_input', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'apadana_option_main_logo_mobile', array( 'label' => esc_html__('Your Logo (Retina)', 'apadana'), 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_main_logo_mobile', 'description' => esc_html__('This logo must be doubled in its dimensions.', 'apadana'), ))); $wp_customize->add_setting('apadana_option_footer_logo', array( 'sanitize_callback' => 'apadana_image_input', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'apadana_option_footer_logo', array( 'label' => esc_html__('Footer Logo', 'apadana'), 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_footer_logo', 'description' => esc_html__('This logo will be used in 3rd style of footer.', 'apadana'), ))); $wp_customize->add_setting('apadana_option_sticky_header', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_sticky_header', array( 'type' => 'select', 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_sticky_header', 'label' => esc_html__('Sticky Header', 'apadana'), 'choices' => array( 1 => esc_html__('On', 'apadana'), 0 => esc_html__('Off', 'apadana') ), )); $wp_customize->add_setting('apadana_option_header_social_icon', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_header_social_icon', array( 'type' => 'select', 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_header_social_icon', 'label' => esc_html__('Social Icons', 'apadana'), 'choices' => array( 1 => esc_html__('Enable', 'apadana'), 0 => esc_html__('Disable', 'apadana') ), 'description' => esc_html__('This item is just for the 3rd style of header section.', 'apadana'), )); $wp_customize->add_setting('apadana_option_breadcrumb_bg', array( 'sanitize_callback' => 'apadana_image_input', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'apadana_option_breadcrumb_bg', array( 'label' => esc_html__('Default Breadcrumb Background', 'apadana'), 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_breadcrumb_bg', ))); $wp_customize->add_setting('apadana_option_search_in_page', array( 'default' => 0, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_search_in_page', array( 'type' => 'select', 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_search_in_page', 'label' => esc_html__('Include Pages in search result', 'apadana'), 'choices' => array( 1 => esc_html__('On', 'apadana'), 0 => esc_html__('Off', 'apadana') ), )); $wp_customize->add_setting('apadana_option_smooth_scroll', array( 'default' => 0, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_smooth_scroll', array( 'type' => 'select', 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_smooth_scroll', 'label' => esc_html__('Enable Smooth Scrolling', 'apadana'), 'choices' => array( 1 => esc_html__('On', 'apadana'), 0 => esc_html__('Off', 'apadana') ), )); $wp_customize->add_setting('apadana_option_map_api', array( 'sanitize_callback' => 'apadana_text_input', )); $wp_customize->add_control('apadana_option_map_api', array( 'type' => 'text', 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_map_api', 'label' => esc_html__('Google API Key', 'apadana'), )); $wp_customize->add_setting('apadana_option_footer_text', array( 'default' => esc_html__('© 2024 Apadana. All Rights Reserved.', 'apadana'), 'sanitize_callback' => 'apadana_html_input', )); $wp_customize->add_control('apadana_option_footer_text', array( 'type' => 'textarea', 'section' => 'apadana_main_setting', 'settings' => 'apadana_option_footer_text', 'label' => esc_html__('Footer Text', 'apadana'), )); /** * ------------------------------------------------------------------------------------------ * Style Settings * ------------------------------------------------------------------------------------------ */ $wp_customize->add_section('apadana_style_setting', array( 'title' => esc_html__('Style Settings', 'apadana'), 'description' => esc_html__('Style setting of Apadana theme', 'apadana'), 'priority' => 1, 'capability' => 'edit_theme_options', 'panel' => 'apadana_general_setting', )); $wp_customize->add_setting('apadana_option_main_style', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_main_style', array( 'type' => 'select', 'section' => 'apadana_style_setting', 'settings' => 'apadana_option_main_style', 'label' => esc_html__('Main Style', 'apadana'), 'choices' => array( 1 => esc_html__('Dark', 'apadana'), 2 => esc_html__('Light', 'apadana'), 3 => esc_html__('Slate Blue', 'apadana') ), )); $wp_customize->add_setting('apadana_option_header_style', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_header_style', array( 'type' => 'select', 'section' => 'apadana_style_setting', 'settings' => 'apadana_option_header_style', 'label' => esc_html__('Header Style', 'apadana'), 'choices' => array( 1 => esc_html__('Style 1', 'apadana'), 2 => esc_html__('Style 2', 'apadana') ), )); $wp_customize->add_setting('apadana_option_footer_style', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_footer_style', array( 'type' => 'select', 'section' => 'apadana_style_setting', 'settings' => 'apadana_option_footer_style', 'label' => esc_html__('Footer Style', 'apadana'), 'choices' => array( 1 => esc_html__('Style 1', 'apadana'), 2 => esc_html__('Style 2', 'apadana'), 3 => esc_html__('Style 3', 'apadana') ), )); $wp_customize->add_setting('apadana_option_main_color', array( 'sanitize_callback' => 'apadana_text_input', )); $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'apadana_option_main_color', array( 'label' => esc_html__('Main Color', 'apadana'), 'description' => esc_html__('Change the main color of theme with this option.', 'apadana'), 'section' => 'apadana_style_setting', 'settings' => 'apadana_option_main_color', 'show_opacity' => true, ))); $wp_customize->add_setting('apadana_option_main_font', array( 'sanitize_callback' => 'apadana_text_input', 'default' => 'Open Sans' )); $wp_customize->add_control(new Apadana_google_font($wp_customize, 'apadana_option_main_font', array( 'label' => esc_html__('Main Font', 'apadana'), 'section' => 'apadana_style_setting', 'settings' => 'apadana_option_main_font', 'description' => esc_html__('Default main font is : "Open Sans"', 'apadana'), ))); $wp_customize->add_setting('apadana_option_second_font', array( 'sanitize_callback' => 'apadana_text_input', 'default' => 'Playfair Display' )); $wp_customize->add_control(new Apadana_google_font($wp_customize, 'apadana_option_second_font', array( 'label' => esc_html__('Second Font', 'apadana'), 'section' => 'apadana_style_setting', 'settings' => 'apadana_option_second_font', 'description' => esc_html__('Default main font is : "Playfair Display"', 'apadana'), ))); $wp_customize->add_setting('apadana_option_third_font', array( 'sanitize_callback' => 'apadana_text_input', 'default' => 'Great Vibes' )); $wp_customize->add_control(new Apadana_google_font($wp_customize, 'apadana_option_third_font', array( 'label' => esc_html__('Third Font', 'apadana'), 'section' => 'apadana_style_setting', 'settings' => 'apadana_option_third_font', 'description' => esc_html__('Default main font is : "Great Vibes"', 'apadana'), ))); /** * ------------------------------------------------------------------------------------------ * Panel of Pages * ------------------------------------------------------------------------------------------ */ $wp_customize->add_panel('apadana_pages', array( 'title' => esc_html__('Apadana Pages', 'apadana'), 'description' => esc_html__('Control all the pages of Apadana theme', 'apadana'), 'priority' => 2, )); /** * ------------------------------------------------------------------------------------------ * Contact Information Section * ------------------------------------------------------------------------------------------ */ $wp_customize->add_section('apadana_contact_info', array( 'title' => esc_html__('Contact', 'apadana'), 'description' => esc_html__('Contact information which is used in contact page of theme.', 'apadana'), 'priority' => 1, 'capability' => 'edit_theme_options', 'panel' => 'apadana_pages', )); $wp_customize->add_setting('apadana_option_contact_subtitle', array('sanitize_callback' => 'apadana_text_input',)); $wp_customize->add_control('apadana_option_contact_subtitle', array( 'type' => 'text', 'section' => 'apadana_contact_info', 'settings' => 'apadana_option_contact_subtitle', 'label' => esc_html__('Page subtitle', 'apadana'), )); $wp_customize->add_setting('apadana_option_contact7', array('sanitize_callback' => 'apadana_text_input')); $wp_customize->add_control('apadana_option_contact7', array( 'type' => 'text', 'section' => 'apadana_contact_info', 'settings' => 'apadana_option_contact7', 'label' => esc_html__('Contact 7 Shortcode', 'apadana'), )); $wp_customize->add_setting('apadana_option_contact_address', array('sanitize_callback' => 'apadana_text_input')); $wp_customize->add_control('apadana_option_contact_address', array( 'type' => 'textarea', 'section' => 'apadana_contact_info', 'settings' => 'apadana_option_contact_address', 'label' => esc_html__('Address', 'apadana'), )); $wp_customize->add_setting('apadana_option_contact_email', array('sanitize_callback' => 'apadana_email_input',)); $wp_customize->add_control('apadana_option_contact_email', array( 'type' => 'email', 'section' => 'apadana_contact_info', 'settings' => 'apadana_option_contact_email', 'label' => esc_html__('Email', 'apadana'), )); $wp_customize->add_setting('apadana_option_contact_phone', array('sanitize_callback' => 'apadana_text_input',)); $wp_customize->add_control('apadana_option_contact_phone', array( 'type' => 'text', 'section' => 'apadana_contact_info', 'settings' => 'apadana_option_contact_phone', 'label' => esc_html__('Phone', 'apadana'), )); /** * ------------------------------------------------------------------------------------------ * Blog Settings * ------------------------------------------------------------------------------------------ */ $wp_customize->add_section('apadana_blog_setting', array( 'title' => esc_html__('Blog', 'apadana'), 'description' => esc_html__('Manage the setting of blog section of theme.', 'apadana'), 'priority' => 2, 'capability' => 'edit_theme_options', 'panel' => 'apadana_pages', )); $wp_customize->add_setting('apadana_option_blog_layout', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_blog_layout', array( 'type' => 'select', 'section' => 'apadana_blog_setting', 'settings' => 'apadana_option_blog_layout', 'label' => esc_html__('Blog Layout', 'apadana'), 'choices' => array( 1 => esc_html__('Default', 'apadana'), 2 => esc_html__('Masonry', 'apadana') ), )); $wp_customize->add_setting('apadana_option_blog_sidebar', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_blog_sidebar', array( 'type' => 'select', 'section' => 'apadana_blog_setting', 'settings' => 'apadana_option_blog_sidebar', 'label' => esc_html__('Sidebar Position', 'apadana'), 'choices' => array( 0 => esc_html__('No Sidebar', 'apadana'), 1 => esc_html__('Sidebar On the Right', 'apadana'), 2 => esc_html__('Sidebar On the Left', 'apadana') ), )); $wp_customize->add_setting('apadana_option_blog_type', array( 'default' => 1, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_blog_type', array( 'type' => 'select', 'section' => 'apadana_blog_setting', 'settings' => 'apadana_option_blog_type', 'label' => esc_html__('Excerpt Or Full Blog Content', 'apadana'), 'choices' => array( 1 => esc_html__('Excerpt', 'apadana'), 2 => esc_html__('Full', 'apadana') ), )); $wp_customize->add_setting('apadana_option_excerpt_length', array( 'default' => 65, 'sanitize_callback' => 'apadana_int_input', )); $wp_customize->add_control('apadana_option_excerpt_length', array( 'type' => 'number', 'section' => 'apadana_blog_setting', 'settings' => 'apadana_option_excerpt_length', 'label' => esc_html__('Excerpt Length', 'apadana'), )); $wp_customize->add_setting('apadana_option_read_more_text', array( 'default' => esc_html__('Read More', 'apadana'), 'sanitize_callback' => 'apadana_text_input', )); $wp_customize->add_control('apadana_option_read_more_text', array( 'type' => 'text', 'section' => 'apadana_blog_setting', 'settings' => 'apadana_option_read_more_text', 'label' => esc_html__('Read More Text', 'apadana'), )); $wp_customize->add_setting('apadana_option_blog_breadcrumb_bg', array( 'sanitize_callback' => 'apadana_image_input', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'apadana_option_blog_breadcrumb_bg', array( 'label' => esc_html__('Blog Breadcrumb Background', 'apadana'), 'section' => 'apadana_blog_setting', 'settings' => 'apadana_option_blog_breadcrumb_bg', ))); $wp_customize->add_setting('apadana_option_blog_details_breadcrumb_bg', array( 'sanitize_callback' => 'apadana_image_input', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'apadana_option_blog_details_breadcrumb_bg', array( 'label' => esc_html__('Blog Details Breadcrumb Background', 'apadana'), 'section' => 'apadana_blog_setting', 'settings' => 'apadana_option_blog_details_breadcrumb_bg', ))); /** * ------------------------------------------------------------------------------------------ * 404 Page Settings * ------------------------------------------------------------------------------------------ */ $wp_customize->add_section('apadana_404_setting', array( 'title' => esc_html__('404', 'apadana'), 'description' => esc_html__('Manage the setting of 404 page of theme.', 'apadana'), 'priority' => 3, 'capability' => 'edit_theme_options', 'panel' => 'apadana_pages', )); $wp_customize->add_setting('apadana_option_404_title', array( 'default' => esc_html__('Page Not Found', 'apadana'), 'sanitize_callback' => 'apadana_text_input', )); $wp_customize->add_control('apadana_option_404_title', array( 'type' => 'text', 'section' => 'apadana_404_setting', 'settings' => 'apadana_option_404_title', 'label' => esc_html__('Title', 'apadana'), )); $wp_customize->add_setting('apadana_option_404_subtitle', array( 'default' => esc_html__('The page you are looking for is not available', 'apadana'), 'sanitize_callback' => 'apadana_text_input', )); $wp_customize->add_control('apadana_option_404_subtitle', array( 'type' => 'text', 'section' => 'apadana_404_setting', 'settings' => 'apadana_option_404_subtitle', 'label' => esc_html__('Subtitle', 'apadana'), )); $wp_customize->add_setting('apadana_option_404_breadcrumb_bg', array( 'sanitize_callback' => 'apadana_image_input', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'apadana_option_404_breadcrumb_bg', array( 'label' => esc_html__('404 Page Breadcrumb Background', 'apadana'), 'section' => 'apadana_404_setting', 'settings' => 'apadana_option_404_breadcrumb_bg', ))); } } add_action('customize_register', 'apadana_customizer');