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');