HEX
Server: Apache
System: Linux p3plzcpnl504740.prod.phx3.secureserver.net 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
User: l2pbkn5l6xav (4972877)
PHP: 7.2.34
Disabled: NONE
Upload Files
File: /home/l2pbkn5l6xav/public_html/wp-content/themes/paropakar/inc/customizer.php
<?php
/**
 * New Theme: Customizer
 *
 * @package WordPress
 * @subpackage Paropakar_Theme
 * @since 1.0
 */

/**
 * Return whether we're previewing the front page and it's a static page.
 */
function paropakar_is_static_front_page() {
	return ( is_front_page() && ! is_home() );
}

/**
 * Function ffor customizer
 *
 * @param array $wp_customize wp_customizer for class object.
 */
function paropakar_theme_customizer( $wp_customize ) {

	$wp_customize->add_panel(
		'paropakar_theme_options',
		array(
			'priority'       => 30,
			'theme_supports' => '',
			'title'          => __( 'Paropakar Theme Options', 'paropakar' ),
			'description'    => __( 'Several settings of Paropakar Theme', 'paropakar' ),
		)
	);

	/**
	 * Paropakar Header Background Image
	 */
	$wp_customize->add_setting(
		'paropakar_header_img',
		array(
			'default'           => '',
			'transport'         => 'refresh',
			'sanitize_callback' => 'paropakar_sanitize_file',
		)
	);

	$wp_customize->add_section(
		'paropakar_header_img_upload',
		array(
			'title'    => __( 'Header Background Image', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	$wp_customize->add_control(
		new WP_Customize_Image_Control(
			$wp_customize,
			'paropakar_header_img',
			array(
				'label'    => __( 'Upload Header Background Image', 'paropakar' ),
				'section'  => 'paropakar_header_img_upload',
				'settings' => 'paropakar_header_img',
			)
		)
	);

	/**
	 * Paropakar Header Image Slider
	*/

	$wp_customize->add_section(
		'paropakar_header_slider',
		array(
			'title'    => __( 'Header Slider', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	$wp_customize->add_setting(
		'paropakar_slider_activation',
		array(
			'default'           => '',
			'transport'         => 'refresh',
			'sanitize_callback' => 'paropakar_sanitize_checkbox',
		)
	);

	$wp_customize->add_control(
		'paropakar_slider_activation',
		array(
			'label'    => __( 'Check to turn on image slider ( If unchecked, header background image will be shown.)', 'paropakar' ),
			'section'  => 'paropakar_header_slider',
			'settings' => 'paropakar_slider_activation',
			'type'     => 'checkbox',
		)
	);

	for ( $count = 1;  $count <= 3;$count++ ) :
		$wp_customize->add_setting(
			'paropakar_header_slider_' . $count,
			array(
				'default'           => '0',
				'transport'         => 'refresh',
				'sanitize_callback' => 'absint',
			)
		);

		$wp_customize->add_control(
			'paropakar_header_slider_image_' . $count,
			array(
				'label'    => __( 'Select A Page For Slider Image', 'paropakar' ),
				'section'  => 'paropakar_header_slider',
				'settings' => 'paropakar_header_slider_' . $count,
				'type'     => 'dropdown-pages',
			)
		);
	endfor;

	/**
	 * Paropakar Services
	 */

	$wp_customize->add_section(
		'paropakar_services_section',
		array(
			'title'    => __( 'Services', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	$wp_customize->add_setting(
		'paropakar_services_page',
		array(
			'default'           => '0',
			'sanitize_callback' => 'absint',
		)
	);

	$wp_customize->add_control(
		'paropakar_services_heading',
		array(
			'type'     => 'dropdown-pages',
			'label'    => __( 'Select A Page For Service Description', 'paropakar' ),
			'section'  => 'paropakar_services_section',
			'settings' => 'paropakar_services_page',
		)
	);

	for ( $count = 1; $count <= 3; $count++ ) :
		$wp_customize->add_setting(
			'paropakar_services_setting_' . $count,
			array(
				'default'           => '0',
				'sanitize_callback' => 'absint',
			)
		);

		$wp_customize->add_control(
			'paropakar_services_pages' . $count,
			array(
				'type'     => 'dropdown-pages',
				'label'    => __( 'Select A Page For Service', 'paropakar' ),
				'section'  => 'paropakar_services_section',
				'settings' => 'paropakar_services_setting_' . $count,
			)
		);
	endfor;

	/**
	 * Paropakar Donation
	 */

	$wp_customize->add_section(
		'paropakar_donation',
		array(
			'title'    => __( 'Donations', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	$wp_customize->add_setting(
		'paropakar_donation_setting',
		array(
			'default'           => '',
			'transport'         => 'refresh',
			'sanitize_callback' => 'absint',
		)
	);

	$wp_customize->add_control(
		'paropakar_donation_page',
		array(
			'label'    => __( 'Select A Page For Donation', 'paropakar' ),
			'section'  => 'paropakar_donation',
			'settings' => 'paropakar_donation_setting',
			'type'     => 'dropdown-pages',
		)
	);

	/**
	 * Paropakar Footer Options
	*/

	$wp_customize->add_section(
		'paropakar_footer',
		array(
			'title'    => __( 'Footer Options', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	$wp_customize->add_setting(
		'paropakar_to_the_top',
		array(
			'default'           => '',
			'transport'         => 'refresh',
			'sanitize_callback' => 'paropakar_sanitize_checkbox',
		)
	);

	$wp_customize->add_control(
		'paropakar_to_the_top',
		array(
			'label'    => __( 'Check to turn on to the top option', 'paropakar' ),
			'section'  => 'paropakar_footer',
			'settings' => 'paropakar_to_the_top',
			'type'     => 'checkbox',
		)
	);

	$wp_customize->add_setting(
		'paropakar_show_footer_copyright',
		array(
			'transport'         => 'refresh',
			'sanitize_callback' => 'paropakar_sanitize_checkbox',
		)
	);

	$wp_customize->add_control(
		'paropakar_show_footer_copyright',
		array(
			'label'    => __( 'Check to show copyright link', 'paropakar' ),
			'section'  => 'paropakar_footer',
			'settings' => 'paropakar_show_footer_copyright',
			'type'     => 'checkbox',
		)
	);

	/**
	 * Paropakar Footer Client Logo Slider
	 */

	$wp_customize->add_section(
		'paropakar_client_logo',
		array(
			'title'    => __( 'Client Logo', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	for ( $count = 1; $count <= 6; $count++ ) :
		$wp_customize->add_setting(
			'paropakar_client_logo_setting_' . $count,
			array(
				'default'           => 'select',
				'transport'         => 'refresh',
				'sanitize_callback' => 'absint',
			)
		);

		$wp_customize->add_control(
			'paropakar_client_logo_' . $count,
			array(
				'label'    => __( 'Select A Page For Client Logo', 'paropakar' ),
				'section'  => 'paropakar_client_logo',
				'settings' => 'paropakar_client_logo_setting_' . $count,
				'type'     => 'dropdown-pages',
			)
		);
	endfor;

	/**
	 * Side-Bar Option Customization
	 */

	$wp_customize->add_section(
		'paropakar_sidebar_option',
		array(
			'title'    => __( 'Sidebar Option', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	$wp_customize->add_setting(
		'paropakar_sidebar_option',
		array(
			'default'           => '',
			'transport'         => 'refresh',
			'sanitize_callback' => 'paropakar_sanitize_key',
		)
	);

	$wp_customize->add_control(
		'paropakar_sidebar_option',
		array(
			'label'    => __( 'Select Your Sidebar Option', 'paropakar' ),
			'section'  => 'paropakar_sidebar_option',
			'settings' => 'paropakar_sidebar_option',
			'type'     => 'radio',
			'choices'  => array(
				'null'  => __( 'Without Sidebar', 'paropakar' ),
				'left'  => __( 'Left Sidebar', 'paropakar' ),
				'right' => __( 'Right Sidebar', 'paropakar' ),
			),
		)
	);

	/**
	 * Paropakar Client Testimonial
	 */

	$wp_customize->add_section(
		'paropakar_client_testimonial',
		array(
			'title'    => __( 'Client Testimonial', 'paropakar' ),
			'priority' => 30,
			'panel'    => 'paropakar_theme_options',
		)
	);

	for ( $count = 1; $count <= 6; $count++ ) :
		$wp_customize->add_setting(
			'paropakar_testimonial_setting_' . $count,
			array(
				'default'           => 'select',
				'sanitize_callback' => 'absint',
			)
		);

		$wp_customize->add_control(
			'paropakar_client_page_' . $count,
			array(
				'label'    => __( 'Select A Page For Client', 'paropakar' ),
				'section'  => 'paropakar_client_testimonial',
				'settings' => 'paropakar_testimonial_setting_' . $count,
				'type'     => 'dropdown-pages',
			)
		);
	endfor;
}
add_action( 'customize_register', 'paropakar_theme_customizer' );



/**
 * Bind JS handlers to instantly live-preview changes.
 */
function paropakar_customize_preview_js() {
	wp_enqueue_script( 'paropakar-customize-preview', get_theme_file_uri( '/assets/js/customize-preview.js' ), array( 'customize-preview' ), '1.0', true );
}
add_action( 'customize_preview_init', 'paropakar_customize_preview_js' );

/**
 * Load dynamic logic for the customizer controls area.
 */
function paropakar_panels_js() {
	wp_enqueue_script( 'paropakar-customize-controls', get_theme_file_uri( '/assets/js/customize-controls.js' ), array(), '1.0', true );
}
add_action( 'customize_controls_enqueue_scripts', 'paropakar_panels_js' );


/**
 * Adds custom classes to the menu.
 *
 * @param array $input Classes for a element.
 * @param array $setting Classes for a element.
 * @return array
 */
function paropakar_sanitize_key( $input, $setting ) {

	$data    = sanitize_key( $input );
	$choices = $setting->manager->get_control( $setting->id )->choices;
	return( array_key_exists( $data, $choices ) ? $data : $setting->default );
}

/**
 * Function for sanatizing database inputs
 *
 * @param array $checked Classes for a element.
 * @return array
 */
function paropakar_sanitize_checkbox( $checked ) {
	// Boolean check.
	return ( ( isset( $checked ) && true === $checked ) ? true : false );
}


/**
 * Function for sanatizing database inputs
 *
 * @param array $file Classes for a element.
 * @param array $setting Classes for a element.
 * @return array
 */
function paropakar_sanitize_file( $file, $setting ) {
	// allowed file types.
	$mimes = array(
		'jpg|jpeg|jpe' => 'image/jpeg',
		'gif'          => 'image/gif',
		'png'          => 'image/png',
	);

	// check file type from file name.
	$file_ext = wp_check_filetype( $file, $mimes );

	// if file has a valid mime type return it, otherwise return default.
	return ( $file_ext['ext'] ? $file : $setting->default );
}