1574 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1574 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Builds our Customizer controls.
 | |
|  *
 | |
|  * @package GeneratePress
 | |
|  */
 | |
| 
 | |
| if ( ! defined( 'ABSPATH' ) ) {
 | |
| 	exit; // Exit if accessed directly.
 | |
| }
 | |
| 
 | |
| add_action( 'customize_register', 'generate_set_customizer_helpers', 1 );
 | |
| /**
 | |
|  * Set up helpers early so they're always available.
 | |
|  * Other modules might need access to them at some point.
 | |
|  *
 | |
|  * @since 2.0
 | |
|  */
 | |
| function generate_set_customizer_helpers() {
 | |
| 	require_once trailingslashit( get_template_directory() ) . 'inc/customizer/customizer-helpers.php';
 | |
| }
 | |
| 
 | |
| if ( ! function_exists( 'generate_customize_register' ) ) {
 | |
| 	add_action( 'customize_register', 'generate_customize_register', 20 );
 | |
| 	/**
 | |
| 	 * Add our base options to the Customizer.
 | |
| 	 *
 | |
| 	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
 | |
| 	 */
 | |
| 	function generate_customize_register( $wp_customize ) {
 | |
| 		if ( version_compare( PHP_VERSION, '5.6', '<' ) ) {
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		$defaults = generate_get_defaults();
 | |
| 		$color_defaults = generate_get_color_defaults();
 | |
| 		$typography_defaults = generate_get_default_fonts();
 | |
| 
 | |
| 		if ( $wp_customize->get_control( 'blogdescription' ) ) {
 | |
| 			$wp_customize->get_control( 'blogdescription' )->priority = 3;
 | |
| 			$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
 | |
| 		}
 | |
| 
 | |
| 		if ( $wp_customize->get_control( 'blogname' ) ) {
 | |
| 			$wp_customize->get_control( 'blogname' )->priority = 1;
 | |
| 			$wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
 | |
| 		}
 | |
| 
 | |
| 		if ( $wp_customize->get_control( 'custom_logo' ) ) {
 | |
| 			$wp_customize->get_setting( 'custom_logo' )->transport = 'refresh';
 | |
| 		}
 | |
| 
 | |
| 		if ( method_exists( $wp_customize, 'register_control_type' ) ) {
 | |
| 			$wp_customize->register_control_type( 'Generate_Customize_Misc_Control' );
 | |
| 			$wp_customize->register_control_type( 'Generate_Range_Slider_Control' );
 | |
| 		}
 | |
| 
 | |
| 		if ( method_exists( $wp_customize, 'register_section_type' ) ) {
 | |
| 			$wp_customize->register_section_type( 'GeneratePress_Upsell_Section' );
 | |
| 		}
 | |
| 
 | |
| 		if ( isset( $wp_customize->selective_refresh ) ) {
 | |
| 			$wp_customize->selective_refresh->add_partial(
 | |
| 				'blogname',
 | |
| 				array(
 | |
| 					'selector' => '.main-title a',
 | |
| 					'render_callback' => 'generate_customize_partial_blogname',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			$wp_customize->selective_refresh->add_partial(
 | |
| 				'blogdescription',
 | |
| 				array(
 | |
| 					'selector' => '.site-description',
 | |
| 					'render_callback' => 'generate_customize_partial_blogdescription',
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		if ( ! defined( 'GP_PREMIUM_VERSION' ) ) {
 | |
| 			$wp_customize->add_section(
 | |
| 				new GeneratePress_Upsell_Section(
 | |
| 					$wp_customize,
 | |
| 					'generatepress_upsell_section',
 | |
| 					array(
 | |
| 						'pro_text' => __( 'Premium Modules Available', 'generatepress' ),
 | |
| 						'pro_url' => generate_get_premium_url( 'https://generatepress.com/premium' ),
 | |
| 						'capability' => 'edit_theme_options',
 | |
| 						'priority' => 0,
 | |
| 						'type' => 'gp-upsell-section',
 | |
| 					)
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[hide_title]',
 | |
| 			array(
 | |
| 				'default' => $defaults['hide_title'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[hide_title]',
 | |
| 			array(
 | |
| 				'type' => 'checkbox',
 | |
| 				'label' => __( 'Hide site title', 'generatepress' ),
 | |
| 				'section' => 'title_tagline',
 | |
| 				'priority' => 2,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[hide_tagline]',
 | |
| 			array(
 | |
| 				'default' => $defaults['hide_tagline'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[hide_tagline]',
 | |
| 			array(
 | |
| 				'type' => 'checkbox',
 | |
| 				'label' => __( 'Hide site tagline', 'generatepress' ),
 | |
| 				'section' => 'title_tagline',
 | |
| 				'priority' => 4,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		if ( ! function_exists( 'the_custom_logo' ) ) {
 | |
| 			$wp_customize->add_setting(
 | |
| 				'generate_settings[logo]',
 | |
| 				array(
 | |
| 					'default' => $defaults['logo'],
 | |
| 					'type' => 'option',
 | |
| 					'sanitize_callback' => 'esc_url_raw',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			$wp_customize->add_control(
 | |
| 				new WP_Customize_Image_Control(
 | |
| 					$wp_customize,
 | |
| 					'generate_settings[logo]',
 | |
| 					array(
 | |
| 						'label' => __( 'Logo', 'generatepress' ),
 | |
| 						'section' => 'title_tagline',
 | |
| 						'settings' => 'generate_settings[logo]',
 | |
| 					)
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[retina_logo]',
 | |
| 			array(
 | |
| 				'default' => $defaults['retina_logo'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'esc_url_raw',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			new WP_Customize_Image_Control(
 | |
| 				$wp_customize,
 | |
| 				'generate_settings[retina_logo]',
 | |
| 				array(
 | |
| 					'label' => __( 'Retina Logo', 'generatepress' ),
 | |
| 					'section' => 'title_tagline',
 | |
| 					'settings' => 'generate_settings[retina_logo]',
 | |
| 					'active_callback' => 'generate_has_custom_logo_callback',
 | |
| 				)
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[logo_width]',
 | |
| 			array(
 | |
| 				'default' => $defaults['logo_width'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_empty_absint',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			new Generate_Range_Slider_Control(
 | |
| 				$wp_customize,
 | |
| 				'generate_settings[logo_width]',
 | |
| 				array(
 | |
| 					'label' => __( 'Logo Width', 'generatepress' ),
 | |
| 					'section' => 'title_tagline',
 | |
| 					'settings' => array(
 | |
| 						'desktop' => 'generate_settings[logo_width]',
 | |
| 					),
 | |
| 					'choices' => array(
 | |
| 						'desktop' => array(
 | |
| 							'min' => 20,
 | |
| 							'max' => 1200,
 | |
| 							'step' => 10,
 | |
| 							'edit' => true,
 | |
| 							'unit' => 'px',
 | |
| 						),
 | |
| 					),
 | |
| 					'active_callback' => 'generate_has_custom_logo_callback',
 | |
| 				)
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[inline_logo_site_branding]',
 | |
| 			array(
 | |
| 				'default' => $defaults['inline_logo_site_branding'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[inline_logo_site_branding]',
 | |
| 			array(
 | |
| 				'type' => 'checkbox',
 | |
| 				'label' => esc_html__( 'Place logo next to title', 'generatepress' ),
 | |
| 				'section' => 'title_tagline',
 | |
| 				'active_callback' => 'generate_show_inline_logo_callback',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_colors_section',
 | |
| 			array(
 | |
| 				'title' => esc_attr__( 'Colors', 'generatepress' ),
 | |
| 				'priority' => 30,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		GeneratePress_Customize_Field::add_title(
 | |
| 			'generate_color_manager_title',
 | |
| 			array(
 | |
| 				'section' => 'generate_colors_section',
 | |
| 				'title' => __( 'Global Colors', 'generatepress' ),
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		GeneratePress_Customize_Field::add_field(
 | |
| 			'generate_settings[global_colors]',
 | |
| 			'GeneratePress_Customize_React_Control',
 | |
| 			array(
 | |
| 				'default' => $defaults['global_colors'],
 | |
| 				'sanitize_callback' => function( $colors ) {
 | |
| 					if ( ! is_array( $colors ) ) {
 | |
| 						return;
 | |
| 					}
 | |
| 
 | |
| 					$new_settings = array();
 | |
| 
 | |
| 					foreach ( (array) $colors as $key => $data ) {
 | |
| 						if ( empty( $data['slug'] ) || empty( $data['color'] ) ) {
 | |
| 							continue;
 | |
| 						}
 | |
| 
 | |
| 						$slug = preg_replace( '/[^a-z0-9-\s]+/i', '', $data['slug'] );
 | |
| 						$slug = strtolower( $slug );
 | |
| 						$new_settings[ $key ]['name'] = sanitize_text_field( $slug );
 | |
| 						$new_settings[ $key ]['slug'] = sanitize_text_field( $slug );
 | |
| 						$new_settings[ $key ]['color'] = generate_sanitize_rgba_color( $data['color'] );
 | |
| 					}
 | |
| 
 | |
| 					// Reset array keys starting at 0.
 | |
| 					$new_settings = array_values( $new_settings );
 | |
| 
 | |
| 					return $new_settings;
 | |
| 				},
 | |
| 				'transport' => 'postMessage',
 | |
| 			),
 | |
| 			array(
 | |
| 				'type' => 'generate-color-manager-control',
 | |
| 				'label' => __( 'Choose Color', 'generatepress' ),
 | |
| 				'section' => 'generate_colors_section',
 | |
| 				'choices' => array(
 | |
| 					'alpha' => true,
 | |
| 					'showPalette' => false,
 | |
| 					'showReset' => false,
 | |
| 					'showVarName' => true,
 | |
| 				),
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$fields_dir = trailingslashit( get_template_directory() ) . 'inc/customizer/fields';
 | |
| 		require_once $fields_dir . '/body.php';
 | |
| 		require_once $fields_dir . '/top-bar.php';
 | |
| 		require_once $fields_dir . '/header.php';
 | |
| 		require_once $fields_dir . '/primary-navigation.php';
 | |
| 
 | |
| 		do_action( 'generate_customize_after_primary_navigation', $wp_customize );
 | |
| 
 | |
| 		require_once $fields_dir . '/buttons.php';
 | |
| 		require_once $fields_dir . '/content.php';
 | |
| 		require_once $fields_dir . '/forms.php';
 | |
| 		require_once $fields_dir . '/sidebar-widgets.php';
 | |
| 		require_once $fields_dir . '/footer-widgets.php';
 | |
| 		require_once $fields_dir . '/footer-bar.php';
 | |
| 		require_once $fields_dir . '/back-to-top.php';
 | |
| 		require_once $fields_dir . '/search-modal.php';
 | |
| 
 | |
| 		do_action( 'generate_customize_after_controls', $wp_customize );
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_typography_section',
 | |
| 			array(
 | |
| 				'title' => esc_attr__( 'Typography', 'generatepress' ),
 | |
| 				'priority' => 35,
 | |
| 				'active_callback' => function() {
 | |
| 					if ( ! generate_is_using_dynamic_typography() ) {
 | |
| 						return false;
 | |
| 					}
 | |
| 
 | |
| 					return true;
 | |
| 				},
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		GeneratePress_Customize_Field::add_title(
 | |
| 			'generate_font_manager_title',
 | |
| 			array(
 | |
| 				'section' => 'generate_typography_section',
 | |
| 				'title' => __( 'Font Manager', 'generatepress' ),
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		GeneratePress_Customize_Field::add_field(
 | |
| 			'generate_settings[font_manager]',
 | |
| 			'GeneratePress_Customize_React_Control',
 | |
| 			array(
 | |
| 				'default' => $defaults['font_manager'],
 | |
| 				'sanitize_callback' => function( $fonts ) {
 | |
| 					if ( ! is_array( $fonts ) ) {
 | |
| 						return;
 | |
| 					}
 | |
| 
 | |
| 					$options = array(
 | |
| 						'fontFamily' => 'sanitize_text_field',
 | |
| 						'googleFont' => 'rest_sanitize_boolean',
 | |
| 						'googleFontApi' => 'absint',
 | |
| 						'googleFontCategory' => 'sanitize_text_field',
 | |
| 						'googleFontVariants' => 'sanitize_text_field',
 | |
| 					);
 | |
| 
 | |
| 					$new_settings = array();
 | |
| 
 | |
| 					foreach ( (array) $fonts as $key => $data ) {
 | |
| 						if ( empty( $data['fontFamily'] ) ) {
 | |
| 							continue;
 | |
| 						}
 | |
| 
 | |
| 						foreach ( $options as $option => $sanitize ) {
 | |
| 							if ( array_key_exists( $option, $data ) ) {
 | |
| 								$new_settings[ $key ][ $option ] = $sanitize( $data[ $option ] );
 | |
| 							}
 | |
| 						}
 | |
| 					}
 | |
| 
 | |
| 					// Reset array keys starting at 0.
 | |
| 					$new_settings = array_values( $new_settings );
 | |
| 
 | |
| 					return $new_settings;
 | |
| 				},
 | |
| 				'transport' => 'refresh',
 | |
| 			),
 | |
| 			array(
 | |
| 				'type' => 'generate-font-manager-control',
 | |
| 				'label' => __( 'Choose Font', 'generatepress' ),
 | |
| 				'section' => 'generate_typography_section',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		GeneratePress_Customize_Field::add_field(
 | |
| 			'generate_settings[google_font_display]',
 | |
| 			'',
 | |
| 			array(
 | |
| 				'default' => $defaults['google_font_display'],
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'refresh',
 | |
| 			),
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Google font-display', 'generatepress' ),
 | |
| 				'description' => sprintf(
 | |
| 					'<a href="%s" target="_blank" rel="noreferrer noopener">%s</a>',
 | |
| 					'https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display',
 | |
| 					esc_html__( 'Learn about font-display', 'generatepress' )
 | |
| 				),
 | |
| 				'section' => 'generate_typography_section',
 | |
| 				'choices' => array(
 | |
| 					'auto' => esc_html__( 'Auto', 'generatepress' ),
 | |
| 					'block' => esc_html__( 'Block', 'generatepress' ),
 | |
| 					'swap' => esc_html__( 'Swap', 'generatepress' ),
 | |
| 					'fallback' => esc_html__( 'Fallback', 'generatepress' ),
 | |
| 					'optional' => esc_html__( 'Optional', 'generatepress' ),
 | |
| 				),
 | |
| 				'active_callback' => function() {
 | |
| 					$font_manager = generate_get_option( 'font_manager' );
 | |
| 					$has_google_font = false;
 | |
| 
 | |
| 					foreach ( (array) $font_manager as $key => $data ) {
 | |
| 						if ( ! empty( $data['googleFont'] ) ) {
 | |
| 							$has_google_font = true;
 | |
| 							break;
 | |
| 						}
 | |
| 					}
 | |
| 
 | |
| 					return $has_google_font;
 | |
| 				},
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		GeneratePress_Customize_Field::add_title(
 | |
| 			'generate_typography_manager_title',
 | |
| 			array(
 | |
| 				'section' => 'generate_typography_section',
 | |
| 				'title' => __( 'Typography Manager', 'generatepress' ),
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		GeneratePress_Customize_Field::add_field(
 | |
| 			'generate_settings[typography]',
 | |
| 			'GeneratePress_Customize_React_Control',
 | |
| 			array(
 | |
| 				'default' => $defaults['typography'],
 | |
| 				'sanitize_callback' => function( $settings ) {
 | |
| 					if ( ! is_array( $settings ) ) {
 | |
| 						return;
 | |
| 					}
 | |
| 
 | |
| 					$options = array(
 | |
| 						'selector' => 'sanitize_text_field',
 | |
| 						'customSelector' => 'sanitize_text_field',
 | |
| 						'fontFamily' => 'sanitize_text_field',
 | |
| 						'fontWeight' => 'sanitize_text_field',
 | |
| 						'textTransform' => 'sanitize_text_field',
 | |
| 						'textDecoration' => 'sanitize_text_field',
 | |
| 						'fontStyle' => 'sanitize_text_field',
 | |
| 						'fontSize' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'fontSizeTablet' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'fontSizeMobile' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'fontSizeUnit' => 'sanitize_text_field',
 | |
| 						'lineHeight' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'lineHeightTablet' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'lineHeightMobile' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'lineHeightUnit' => 'sanitize_text_field',
 | |
| 						'letterSpacing' => 'generate_sanitize_empty_negative_decimal_integer',
 | |
| 						'letterSpacingTablet' => 'generate_sanitize_empty_negative_decimal_integer',
 | |
| 						'letterSpacingMobile' => 'generate_sanitize_empty_negative_decimal_integer',
 | |
| 						'letterSpacingUnit' => 'sanitize_text_field',
 | |
| 						'marginBottom' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'marginBottomTablet' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'marginBottomMobile' => 'generate_sanitize_empty_decimal_integer',
 | |
| 						'marginBottomUnit' => 'sanitize_text_field',
 | |
| 						'module' => 'sanitize_text_field',
 | |
| 						'group' => 'sanitize_text_field',
 | |
| 					);
 | |
| 
 | |
| 					$new_settings = array();
 | |
| 
 | |
| 					foreach ( (array) $settings as $key => $data ) {
 | |
| 						if ( empty( $data['selector'] ) ) {
 | |
| 							continue;
 | |
| 						}
 | |
| 
 | |
| 						foreach ( $options as $option => $sanitize ) {
 | |
| 							if ( array_key_exists( $option, $data ) ) {
 | |
| 								$new_settings[ $key ][ $option ] = $sanitize( $data[ $option ] );
 | |
| 							}
 | |
| 						}
 | |
| 					}
 | |
| 
 | |
| 					// Reset array keys starting at 0.
 | |
| 					$new_settings = array_values( $new_settings );
 | |
| 
 | |
| 					return $new_settings;
 | |
| 				},
 | |
| 				'transport' => 'refresh',
 | |
| 			),
 | |
| 			array(
 | |
| 				'type' => 'generate-typography-control',
 | |
| 				'label' => __( 'Configure', 'generatepress' ),
 | |
| 				'section' => 'generate_typography_section',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		if ( ! $wp_customize->get_panel( 'generate_layout_panel' ) ) {
 | |
| 			$wp_customize->add_panel(
 | |
| 				'generate_layout_panel',
 | |
| 				array(
 | |
| 					'priority' => 25,
 | |
| 					'title' => __( 'Layout', 'generatepress' ),
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_layout_container',
 | |
| 			array(
 | |
| 				'title' => __( 'Container', 'generatepress' ),
 | |
| 				'priority' => 10,
 | |
| 				'panel' => 'generate_layout_panel',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[container_width]',
 | |
| 			array(
 | |
| 				'default' => $defaults['container_width'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_integer',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			new Generate_Range_Slider_Control(
 | |
| 				$wp_customize,
 | |
| 				'generate_settings[container_width]',
 | |
| 				array(
 | |
| 					'type' => 'generatepress-range-slider',
 | |
| 					'label' => __( 'Container Width', 'generatepress' ),
 | |
| 					'section' => 'generate_layout_container',
 | |
| 					'settings' => array(
 | |
| 						'desktop' => 'generate_settings[container_width]',
 | |
| 					),
 | |
| 					'choices' => array(
 | |
| 						'desktop' => array(
 | |
| 							'min' => 700,
 | |
| 							'max' => 2000,
 | |
| 							'step' => 5,
 | |
| 							'edit' => true,
 | |
| 							'unit' => 'px',
 | |
| 						),
 | |
| 					),
 | |
| 					'priority' => 0,
 | |
| 				)
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_top_bar',
 | |
| 			array(
 | |
| 				'title' => __( 'Top Bar', 'generatepress' ),
 | |
| 				'priority' => 15,
 | |
| 				'panel' => 'generate_layout_panel',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[top_bar_width]',
 | |
| 			array(
 | |
| 				'default' => $defaults['top_bar_width'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[top_bar_width]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Top Bar Width', 'generatepress' ),
 | |
| 				'section' => 'generate_top_bar',
 | |
| 				'choices' => array(
 | |
| 					'full' => __( 'Full', 'generatepress' ),
 | |
| 					'contained' => __( 'Contained', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[top_bar_width]',
 | |
| 				'priority' => 5,
 | |
| 				'active_callback' => 'generate_is_top_bar_active',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[top_bar_inner_width]',
 | |
| 			array(
 | |
| 				'default' => $defaults['top_bar_inner_width'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[top_bar_inner_width]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Top Bar Inner Width', 'generatepress' ),
 | |
| 				'section' => 'generate_top_bar',
 | |
| 				'choices' => array(
 | |
| 					'full' => __( 'Full', 'generatepress' ),
 | |
| 					'contained' => __( 'Contained', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[top_bar_inner_width]',
 | |
| 				'priority' => 10,
 | |
| 				'active_callback' => 'generate_is_top_bar_active',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[top_bar_alignment]',
 | |
| 			array(
 | |
| 				'default' => $defaults['top_bar_alignment'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[top_bar_alignment]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Top Bar Alignment', 'generatepress' ),
 | |
| 				'section' => 'generate_top_bar',
 | |
| 				'choices' => array(
 | |
| 					'left' => __( 'Left', 'generatepress' ),
 | |
| 					'center' => __( 'Center', 'generatepress' ),
 | |
| 					'right' => __( 'Right', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[top_bar_alignment]',
 | |
| 				'priority' => 15,
 | |
| 				'active_callback' => 'generate_is_top_bar_active',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_layout_header',
 | |
| 			array(
 | |
| 				'title' => __( 'Header', 'generatepress' ),
 | |
| 				'priority' => 20,
 | |
| 				'panel' => 'generate_layout_panel',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_header_helper',
 | |
| 			array(
 | |
| 				'default' => 'current',
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_preset_layout',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_header_helper',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Header Presets', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_header',
 | |
| 				'choices' => array(
 | |
| 					'current' => __( 'Current', 'generatepress' ),
 | |
| 					'default' => __( 'Default', 'generatepress' ),
 | |
| 					'classic' => __( 'Classic', 'generatepress' ),
 | |
| 					'nav-before' => __( 'Navigation Before', 'generatepress' ),
 | |
| 					'nav-after' => __( 'Navigation After', 'generatepress' ),
 | |
| 					'nav-before-centered' => __( 'Navigation Before - Centered', 'generatepress' ),
 | |
| 					'nav-after-centered' => __( 'Navigation After - Centered', 'generatepress' ),
 | |
| 					'nav-left' => __( 'Navigation Left', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_header_helper',
 | |
| 				'priority' => 4,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		if ( ! $wp_customize->get_setting( 'generate_settings[site_title_font_size]' ) ) {
 | |
| 			$typography_defaults = generate_get_default_fonts();
 | |
| 
 | |
| 			$wp_customize->add_setting(
 | |
| 				'generate_settings[site_title_font_size]',
 | |
| 				array(
 | |
| 					'default' => $typography_defaults['site_title_font_size'],
 | |
| 					'type' => 'option',
 | |
| 					'sanitize_callback' => 'absint',
 | |
| 					'transport' => 'postMessage',
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		if ( ! $wp_customize->get_setting( 'generate_spacing_settings[header_top]' ) ) {
 | |
| 			$spacing_defaults = generate_spacing_get_defaults();
 | |
| 
 | |
| 			$wp_customize->add_setting(
 | |
| 				'generate_spacing_settings[header_top]',
 | |
| 				array(
 | |
| 					'default' => $spacing_defaults['header_top'],
 | |
| 					'type' => 'option',
 | |
| 					'sanitize_callback' => 'absint',
 | |
| 					'transport' => 'postMessage',
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		if ( ! $wp_customize->get_setting( 'generate_spacing_settings[header_bottom]' ) ) {
 | |
| 			$spacing_defaults = generate_spacing_get_defaults();
 | |
| 
 | |
| 			$wp_customize->add_setting(
 | |
| 				'generate_spacing_settings[header_bottom]',
 | |
| 				array(
 | |
| 					'default' => $spacing_defaults['header_bottom'],
 | |
| 					'type' => 'option',
 | |
| 					'sanitize_callback' => 'absint',
 | |
| 					'transport' => 'postMessage',
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[header_layout_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['header_layout_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[header_layout_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Header Width', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_header',
 | |
| 				'choices' => array(
 | |
| 					'fluid-header' => __( 'Full', 'generatepress' ),
 | |
| 					'contained-header' => __( 'Contained', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[header_layout_setting]',
 | |
| 				'priority' => 5,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[header_inner_width]',
 | |
| 			array(
 | |
| 				'default' => $defaults['header_inner_width'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[header_inner_width]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Inner Header Width', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_header',
 | |
| 				'choices' => array(
 | |
| 					'contained' => __( 'Contained', 'generatepress' ),
 | |
| 					'full-width' => __( 'Full', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[header_inner_width]',
 | |
| 				'priority' => 6,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[header_alignment_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['header_alignment_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[header_alignment_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Header Alignment', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_header',
 | |
| 				'choices' => array(
 | |
| 					'left' => __( 'Left', 'generatepress' ),
 | |
| 					'center' => __( 'Center', 'generatepress' ),
 | |
| 					'right' => __( 'Right', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[header_alignment_setting]',
 | |
| 				'priority' => 10,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_layout_navigation',
 | |
| 			array(
 | |
| 				'title' => __( 'Primary Navigation', 'generatepress' ),
 | |
| 				'priority' => 30,
 | |
| 				'panel' => 'generate_layout_panel',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_layout_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_layout_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_layout_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Navigation Width', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'choices' => array(
 | |
| 					'fluid-nav' => __( 'Full', 'generatepress' ),
 | |
| 					'contained-nav' => __( 'Contained', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[nav_layout_setting]',
 | |
| 				'priority' => 15,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_inner_width]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_inner_width'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_inner_width]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Inner Navigation Width', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'choices' => array(
 | |
| 					'contained' => __( 'Contained', 'generatepress' ),
 | |
| 					'full-width' => __( 'Full', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[nav_inner_width]',
 | |
| 				'priority' => 16,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_alignment_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_alignment_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_alignment_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Navigation Alignment', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'choices' => array(
 | |
| 					'left' => __( 'Left', 'generatepress' ),
 | |
| 					'center' => __( 'Center', 'generatepress' ),
 | |
| 					'right' => __( 'Right', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[nav_alignment_setting]',
 | |
| 				'priority' => 20,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_position_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_position_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'refresh',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_position_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Navigation Location', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'choices' => array(
 | |
| 					'nav-below-header' => __( 'Below Header', 'generatepress' ),
 | |
| 					'nav-above-header' => __( 'Above Header', 'generatepress' ),
 | |
| 					'nav-float-right' => __( 'Float Right', 'generatepress' ),
 | |
| 					'nav-float-left' => __( 'Float Left', 'generatepress' ),
 | |
| 					'nav-left-sidebar' => __( 'Left Sidebar', 'generatepress' ),
 | |
| 					'nav-right-sidebar' => __( 'Right Sidebar', 'generatepress' ),
 | |
| 					'' => __( 'No Navigation', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[nav_position_setting]',
 | |
| 				'priority' => 22,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_drop_point]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_drop_point'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_empty_absint',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			new Generate_Range_Slider_Control(
 | |
| 				$wp_customize,
 | |
| 				'generate_settings[nav_drop_point]',
 | |
| 				array(
 | |
| 					'label' => __( 'Navigation Drop Point', 'generatepress' ),
 | |
| 					'sub_description' => __( 'The width when the navigation ceases to float and drops below your logo.', 'generatepress' ),
 | |
| 					'section' => 'generate_layout_navigation',
 | |
| 					'settings' => array(
 | |
| 						'desktop' => 'generate_settings[nav_drop_point]',
 | |
| 					),
 | |
| 					'choices' => array(
 | |
| 						'desktop' => array(
 | |
| 							'min' => 500,
 | |
| 							'max' => 2000,
 | |
| 							'step' => 10,
 | |
| 							'edit' => true,
 | |
| 							'unit' => 'px',
 | |
| 						),
 | |
| 					),
 | |
| 					'priority' => 22,
 | |
| 				)
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_dropdown_type]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_dropdown_type'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_dropdown_type]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Navigation Dropdown', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'choices' => array(
 | |
| 					'hover' => __( 'Hover', 'generatepress' ),
 | |
| 					'click' => __( 'Click - Menu Item', 'generatepress' ),
 | |
| 					'click-arrow' => __( 'Click - Arrow', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[nav_dropdown_type]',
 | |
| 				'priority' => 22,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_dropdown_direction]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_dropdown_direction'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_dropdown_direction]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Dropdown Direction', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'choices' => array(
 | |
| 					'right' => __( 'Right', 'generatepress' ),
 | |
| 					'left' => __( 'Left', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[nav_dropdown_direction]',
 | |
| 				'priority' => 22,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_search]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_search'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_search]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Navigation Search', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'choices' => array(
 | |
| 					'enable' => __( 'Enable', 'generatepress' ),
 | |
| 					'disable' => __( 'Disable', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[nav_search]',
 | |
| 				'priority' => 23,
 | |
| 				'active_callback' => function() {
 | |
| 					return 'enable' === generate_get_option( 'nav_search' );
 | |
| 				},
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[nav_search_modal]',
 | |
| 			array(
 | |
| 				'default' => $defaults['nav_search_modal'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[nav_search_modal]',
 | |
| 			array(
 | |
| 				'type' => 'checkbox',
 | |
| 				'label' => esc_html__( 'Enable navigation search modal', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_navigation',
 | |
| 				'priority' => 23,
 | |
| 				'active_callback' => function() {
 | |
| 					return 'disable' === generate_get_option( 'nav_search' );
 | |
| 				},
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[content_layout_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['content_layout_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[content_layout_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Content Layout', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_container',
 | |
| 				'choices' => array(
 | |
| 					'separate-containers' => __( 'Separate Containers', 'generatepress' ),
 | |
| 					'one-container' => __( 'One Container', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[content_layout_setting]',
 | |
| 				'priority' => 25,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[container_alignment]',
 | |
| 			array(
 | |
| 				'default' => $defaults['container_alignment'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[container_alignment]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Container Alignment', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_container',
 | |
| 				'choices' => array(
 | |
| 					'boxes' => __( 'Boxes', 'generatepress' ),
 | |
| 					'text' => __( 'Text', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[container_alignment]',
 | |
| 				'priority' => 30,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_layout_sidebars',
 | |
| 			array(
 | |
| 				'title' => __( 'Sidebars', 'generatepress' ),
 | |
| 				'priority' => 40,
 | |
| 				'panel' => 'generate_layout_panel',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[layout_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['layout_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[layout_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Sidebar Layout', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_sidebars',
 | |
| 				'choices' => array(
 | |
| 					'left-sidebar' => __( 'Sidebar / Content', 'generatepress' ),
 | |
| 					'right-sidebar' => __( 'Content / Sidebar', 'generatepress' ),
 | |
| 					'no-sidebar' => __( 'Content (no sidebars)', 'generatepress' ),
 | |
| 					'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'generatepress' ),
 | |
| 					'both-left' => __( 'Sidebar / Sidebar / Content', 'generatepress' ),
 | |
| 					'both-right' => __( 'Content / Sidebar / Sidebar', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[layout_setting]',
 | |
| 				'priority' => 30,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[blog_layout_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['blog_layout_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[blog_layout_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Blog Sidebar Layout', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_sidebars',
 | |
| 				'choices' => array(
 | |
| 					'left-sidebar' => __( 'Sidebar / Content', 'generatepress' ),
 | |
| 					'right-sidebar' => __( 'Content / Sidebar', 'generatepress' ),
 | |
| 					'no-sidebar' => __( 'Content (no sidebars)', 'generatepress' ),
 | |
| 					'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'generatepress' ),
 | |
| 					'both-left' => __( 'Sidebar / Sidebar / Content', 'generatepress' ),
 | |
| 					'both-right' => __( 'Content / Sidebar / Sidebar', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[blog_layout_setting]',
 | |
| 				'priority' => 35,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[single_layout_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['single_layout_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[single_layout_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Single Post Sidebar Layout', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_sidebars',
 | |
| 				'choices' => array(
 | |
| 					'left-sidebar' => __( 'Sidebar / Content', 'generatepress' ),
 | |
| 					'right-sidebar' => __( 'Content / Sidebar', 'generatepress' ),
 | |
| 					'no-sidebar' => __( 'Content (no sidebars)', 'generatepress' ),
 | |
| 					'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'generatepress' ),
 | |
| 					'both-left' => __( 'Sidebar / Sidebar / Content', 'generatepress' ),
 | |
| 					'both-right' => __( 'Content / Sidebar / Sidebar', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[single_layout_setting]',
 | |
| 				'priority' => 36,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_layout_footer',
 | |
| 			array(
 | |
| 				'title' => __( 'Footer', 'generatepress' ),
 | |
| 				'priority' => 50,
 | |
| 				'panel' => 'generate_layout_panel',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[footer_layout_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['footer_layout_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[footer_layout_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Footer Width', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_footer',
 | |
| 				'choices' => array(
 | |
| 					'fluid-footer' => __( 'Full', 'generatepress' ),
 | |
| 					'contained-footer' => __( 'Contained', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[footer_layout_setting]',
 | |
| 				'priority' => 40,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[footer_inner_width]',
 | |
| 			array(
 | |
| 				'default' => $defaults['footer_inner_width'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[footer_inner_width]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Inner Footer Width', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_footer',
 | |
| 				'choices' => array(
 | |
| 					'contained' => __( 'Contained', 'generatepress' ),
 | |
| 					'full-width' => __( 'Full', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[footer_inner_width]',
 | |
| 				'priority' => 41,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[footer_widget_setting]',
 | |
| 			array(
 | |
| 				'default' => $defaults['footer_widget_setting'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[footer_widget_setting]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Footer Widgets', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_footer',
 | |
| 				'choices' => array(
 | |
| 					'0' => '0',
 | |
| 					'1' => '1',
 | |
| 					'2' => '2',
 | |
| 					'3' => '3',
 | |
| 					'4' => '4',
 | |
| 					'5' => '5',
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[footer_widget_setting]',
 | |
| 				'priority' => 45,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[footer_bar_alignment]',
 | |
| 			array(
 | |
| 				'default' => $defaults['footer_bar_alignment'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				'transport' => 'postMessage',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[footer_bar_alignment]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Footer Bar Alignment', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_footer',
 | |
| 				'choices' => array(
 | |
| 					'left' => __( 'Left', 'generatepress' ),
 | |
| 					'center' => __( 'Center', 'generatepress' ),
 | |
| 					'right' => __( 'Right', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[footer_bar_alignment]',
 | |
| 				'priority' => 47,
 | |
| 				'active_callback' => 'generate_is_footer_bar_active',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[back_to_top]',
 | |
| 			array(
 | |
| 				'default' => $defaults['back_to_top'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[back_to_top]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Back to Top Button', 'generatepress' ),
 | |
| 				'section' => 'generate_layout_footer',
 | |
| 				'choices' => array(
 | |
| 					'enable' => __( 'Enable', 'generatepress' ),
 | |
| 					'' => __( 'Disable', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[back_to_top]',
 | |
| 				'priority' => 50,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_blog_section',
 | |
| 			array(
 | |
| 				'title' => __( 'Blog', 'generatepress' ),
 | |
| 				'priority' => 55,
 | |
| 				'panel' => 'generate_layout_panel',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[post_content]',
 | |
| 			array(
 | |
| 				'default' => $defaults['post_content'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_blog_excerpt',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'blog_content_control',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Content Type', 'generatepress' ),
 | |
| 				'section' => 'generate_blog_section',
 | |
| 				'choices' => array(
 | |
| 					'full' => __( 'Full Content', 'generatepress' ),
 | |
| 					'excerpt' => __( 'Excerpt', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[post_content]',
 | |
| 				'priority' => 10,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		if ( ! function_exists( 'generate_blog_customize_register' ) && ! defined( 'GP_PREMIUM_VERSION' ) ) {
 | |
| 			$wp_customize->add_control(
 | |
| 				new Generate_Customize_Misc_Control(
 | |
| 					$wp_customize,
 | |
| 					'blog_get_addon_desc',
 | |
| 					array(
 | |
| 						'section' => 'generate_blog_section',
 | |
| 						'type' => 'addon',
 | |
| 						'label' => __( 'Learn more', 'generatepress' ),
 | |
| 						'description' => __( 'More options are available for this section in our premium version.', 'generatepress' ),
 | |
| 						'url' => generate_get_premium_url( 'https://generatepress.com/premium/#blog', false ),
 | |
| 						'priority' => 30,
 | |
| 						'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname',
 | |
| 					)
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$wp_customize->add_section(
 | |
| 			'generate_general_section',
 | |
| 			array(
 | |
| 				'title' => __( 'General', 'generatepress' ),
 | |
| 				'priority' => 99,
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		if ( ! apply_filters( 'generate_fontawesome_essentials', false ) ) {
 | |
| 			$wp_customize->add_setting(
 | |
| 				'generate_settings[font_awesome_essentials]',
 | |
| 				array(
 | |
| 					'default' => $defaults['font_awesome_essentials'],
 | |
| 					'type' => 'option',
 | |
| 					'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			$wp_customize->add_control(
 | |
| 				'generate_settings[font_awesome_essentials]',
 | |
| 				array(
 | |
| 					'type' => 'checkbox',
 | |
| 					'label' => __( 'Load essential icons only', 'generatepress' ),
 | |
| 					'description' => __( 'Load essential Font Awesome icons instead of the full library.', 'generatepress' ),
 | |
| 					'section' => 'generate_general_section',
 | |
| 					'settings' => 'generate_settings[font_awesome_essentials]',
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$show_flexbox_option = true;
 | |
| 
 | |
| 		if ( defined( 'GP_PREMIUM_VERSION' ) && version_compare( GP_PREMIUM_VERSION, '1.11.0-alpha.1', '<' ) ) {
 | |
| 			$show_flexbox_option = false;
 | |
| 		}
 | |
| 
 | |
| 		if ( generate_is_using_flexbox() ) {
 | |
| 			$show_flexbox_option = false;
 | |
| 		}
 | |
| 
 | |
| 		$show_flexbox_option = apply_filters( 'generate_show_flexbox_customizer_option', $show_flexbox_option );
 | |
| 
 | |
| 		if ( $show_flexbox_option ) {
 | |
| 			$wp_customize->add_setting(
 | |
| 				'generate_settings[structure]',
 | |
| 				array(
 | |
| 					'default' => $defaults['structure'],
 | |
| 					'type' => 'option',
 | |
| 					'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			$wp_customize->add_control(
 | |
| 				'generate_settings[structure]',
 | |
| 				array(
 | |
| 					'type' => 'select',
 | |
| 					'label' => __( 'Structure', 'generatepress' ),
 | |
| 					'section' => 'generate_general_section',
 | |
| 					'choices' => array(
 | |
| 						'flexbox' => __( 'Flexbox', 'generatepress' ),
 | |
| 						'floats' => __( 'Floats', 'generatepress' ),
 | |
| 					),
 | |
| 					'description' => sprintf(
 | |
| 						'<strong>%1$s</strong> %2$s',
 | |
| 						__( 'Caution:', 'generatepress' ),
 | |
| 						sprintf(
 | |
| 							/* translators: Learn more here */
 | |
| 							__( 'Switching your structure can change how your website displays. Review your website thoroughly before publishing this change, or use a staging site to review the potential changes. Learn more %s.', 'generatepress' ),
 | |
| 							'<a href="https://docs.generatepress.com/article/switching-from-floats-to-flexbox/" target="_blank" rel="noopener noreferrer">' . __( 'here', 'generatepress' ) . '</a>'
 | |
| 						)
 | |
| 					),
 | |
| 					'settings' => 'generate_settings[structure]',
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[icons]',
 | |
| 			array(
 | |
| 				'default' => $defaults['icons'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[icons]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Icon Type', 'generatepress' ),
 | |
| 				'section' => 'generate_general_section',
 | |
| 				'choices' => array(
 | |
| 					'svg' => __( 'SVG', 'generatepress' ),
 | |
| 					'font' => __( 'Font', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[icons]',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[underline_links]',
 | |
| 			array(
 | |
| 				'default' => $defaults['underline_links'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_choices',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[underline_links]',
 | |
| 			array(
 | |
| 				'type' => 'select',
 | |
| 				'label' => __( 'Underline Links', 'generatepress' ),
 | |
| 				'description' => __( 'Add underlines to your links in your main content areas.', 'generatepress' ),
 | |
| 				'section' => 'generate_general_section',
 | |
| 				'choices' => array(
 | |
| 					'always' => __( 'Always', 'generatepress' ),
 | |
| 					'hover' => __( 'On hover', 'generatepress' ),
 | |
| 					'not-hover' => __( 'Not on hover', 'generatepress' ),
 | |
| 					'never' => __( 'Never', 'generatepress' ),
 | |
| 				),
 | |
| 				'settings' => 'generate_settings[underline_links]',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[combine_css]',
 | |
| 			array(
 | |
| 				'default' => $defaults['combine_css'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[combine_css]',
 | |
| 			array(
 | |
| 				'type' => 'checkbox',
 | |
| 				'label' => __( 'Combine CSS', 'generatepress' ),
 | |
| 				'description' => __( 'Reduce the number of CSS file requests and use a lite version of our grid system.', 'generatepress' ),
 | |
| 				'section' => 'generate_general_section',
 | |
| 				'active_callback' => 'generate_is_using_floats_callback',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_setting(
 | |
| 			'generate_settings[dynamic_css_cache]',
 | |
| 			array(
 | |
| 				'default' => $defaults['dynamic_css_cache'],
 | |
| 				'type' => 'option',
 | |
| 				'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$wp_customize->add_control(
 | |
| 			'generate_settings[dynamic_css_cache]',
 | |
| 			array(
 | |
| 				'type' => 'checkbox',
 | |
| 				'label' => __( 'Cache dynamic CSS', 'generatepress' ),
 | |
| 				'description' => __( 'Cache CSS generated by your options to boost performance.', 'generatepress' ),
 | |
| 				'section' => 'generate_general_section',
 | |
| 			)
 | |
| 		);
 | |
| 
 | |
| 		$show_legacy_typography_option = true;
 | |
| 
 | |
| 		if ( defined( 'GP_PREMIUM_VERSION' ) && version_compare( GP_PREMIUM_VERSION, '2.1.0-alpha.1', '<' ) ) {
 | |
| 			$show_legacy_typography_option = false;
 | |
| 		}
 | |
| 
 | |
| 		if ( generate_is_using_dynamic_typography() ) {
 | |
| 			$show_legacy_typography_option = false;
 | |
| 		}
 | |
| 
 | |
| 		$show_legacy_typography_option = apply_filters( 'generate_show_legacy_typography_customizer_option', $show_legacy_typography_option );
 | |
| 
 | |
| 		if ( $show_legacy_typography_option ) {
 | |
| 			$wp_customize->add_setting(
 | |
| 				'generate_settings[use_dynamic_typography]',
 | |
| 				array(
 | |
| 					'default' => $defaults['use_dynamic_typography'],
 | |
| 					'type' => 'option',
 | |
| 					'sanitize_callback' => 'generate_sanitize_checkbox',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			$wp_customize->add_control(
 | |
| 				'generate_settings[use_dynamic_typography]',
 | |
| 				array(
 | |
| 					'type' => 'checkbox',
 | |
| 					'label' => __( 'Use dynamic typography system', 'generatepress' ),
 | |
| 					'description' => sprintf(
 | |
| 						/* translators: Learn more here */
 | |
| 						__( 'Switching to our dynamic typography system can change how your fonts display. Review your website thoroughly before publishing this change. Learn more %s.', 'generatepress' ),
 | |
| 						'<a href="https://docs.generatepress.com/article/switching-to-dynamic-typography/" target="_blank" rel="noopener noreferrer">' . __( 'here', 'generatepress' ) . '</a>'
 | |
| 					),
 | |
| 					'section' => 'generate_general_section',
 | |
| 					'settings' => 'generate_settings[use_dynamic_typography]',
 | |
| 				)
 | |
| 			);
 | |
| 		}
 | |
| 	}
 | |
| }
 |