HEX
Server: Apache
System: Linux eisbus 6.8.12-9-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-9 (2025-03-16T19:18Z) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/PluginBackup/burger-companion/inc/appetizer/features/appetizer-product.php
<?php
function appetizer_product_setting( $wp_customize ) {
$selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';
	/*=========================================
	Product  Section
	=========================================*/
	$wp_customize->add_section(
		'product_setting', array(
			'title' => esc_html__( 'Product Section', 'appetizer' ),
			'priority' => 8,
			'panel' => 'appetizer_frontpage_sections',
		)
	);

	// Settings // 
	$wp_customize->add_setting(
		'product_setting_head'
			,array(
			'capability'     	=> 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_text',
			'priority' => 3,
		)
	);

	$wp_customize->add_control(
	'product_setting_head',
		array(
			'type' => 'hidden',
			'label' => __('Settings','appetizer'),
			'section' => 'product_setting',
		)
	);
	// hide/show
	$wp_customize->add_setting( 
		'hs_product' , 
			array(
			'default' => '1',
			'capability'     => 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_checkbox',
			'priority' => 3,
		) 
	);
	
	$wp_customize->add_control(
	'hs_product', 
		array(
			'label'	      => esc_html__( 'Hide/Show', 'appetizer' ),
			'section'     => 'product_setting',
			'type'        => 'checkbox',
		) 
	);	
	
	// Product Header Section // 
	$wp_customize->add_setting(
		'product_headings'
			,array(
			'capability'     	=> 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_text',
			'priority' => 3,
		)
	);

	$wp_customize->add_control(
	'product_headings',
		array(
			'type' => 'hidden',
			'label' => __('Header','appetizer'),
			'section' => 'product_setting',
		)
	);
	
	// Product Title // 
	$wp_customize->add_setting(
    	'product_title',
    	array(
	        'default'			=> __('Special Dishes Today','appetizer'),
			'capability'     	=> 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_html',
			'transport'         => $selective_refresh,
			'priority' => 4,
		)
	);	
	
	$wp_customize->add_control( 
		'product_title',
		array(
		    'label'   => __('Title','appetizer'),
		    'section' => 'product_setting',
			'type'           => 'text',
		)  
	);
	
	// Product Description // 
	$wp_customize->add_setting(
    	'product_description',
    	array(
	        'default'			=> __('Lets Discover Food','appetizer'),
			'capability'     	=> 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_html',
			'transport'         => $selective_refresh,
			'priority' => 6,
		)
	);	
	
	$wp_customize->add_control( 
		'product_description',
		array(
		    'label'   => __('Description','appetizer'),
		    'section' => 'product_setting',
			'type'           => 'textarea',
		)  
	);

	// Product content Section // 
	
	$wp_customize->add_setting(
		'product_content_head'
			,array(
			'capability'     	=> 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_text',
			'priority' => 7,
		)
	);

	$wp_customize->add_control(
	'product_content_head',
		array(
			'type' => 'hidden',
			'label' => __('Content','appetizer'),
			'section' => 'product_setting',
		)
	);
	
	// product_display_num
	if ( class_exists( 'Burger_Customizer_Range_Control' ) ) {
		$wp_customize->add_setting(
			'product_display_num',
			array(
				'default' => '4',
				'capability'     	=> 'edit_theme_options',
				'sanitize_callback' => 'appetizer_sanitize_range_value',
				'priority' => 8,
			)
		);
		$wp_customize->add_control( 
		new Burger_Customizer_Range_Control( $wp_customize, 'product_display_num', 
			array(
				'label'      => __( 'No of Product Display', 'appetizer' ),
				'section'  => 'product_setting',
				'input_attrs' => array(
					'min'    => 1,
					'max'    => 500,
					'step'   => 1,
					//'suffix' => 'px', //optional suffix
				),
			) ) 
		);
	}
	
	
	// Product Background Section // 
	
	$wp_customize->add_setting(
		'product_bg_head'
			,array(
			'capability'     	=> 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_text',
			'priority' => 11,
		)
	);

	$wp_customize->add_control(
	'product_bg_head',
		array(
			'type' => 'hidden',
			'label' => __('Background','appetizer'),
			'section' => 'product_setting',
		)
	);
	
	
	// Background Image // 
    $wp_customize->add_setting( 
    	'product_bg_img' , 
    	array(
			'default' 			=> esc_url(BURGER_COMPANION_PLUGIN_URL .'inc/appetizer/images/product/product_bg.jpg'),
			'capability'     	=> 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_url',	
			'priority' => 12,
		) 
	);
	
	$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize , 'product_bg_img' ,
		array(
			'label'          => esc_html__( 'Background Image', 'appetizer'),
			'section'        => 'product_setting',
		) 
	));
	
	// Background Attachment // 
	$wp_customize->add_setting( 
		'product_back_attach' , 
			array(
			'default' => 'fixed',
			'capability'     => 'edit_theme_options',
			'sanitize_callback' => 'appetizer_sanitize_select',
			'priority'  => 13,
		) 
	);
	
	$wp_customize->add_control(
	'product_back_attach' , 
		array(
			'label'          => __( 'Background Attachment', 'appetizer' ),
			'section'        => 'product_setting',
			'type'           => 'select',
			'choices'        => 
			array(
				'inherit' => __( 'Inherit', 'appetizer' ),
				'scroll' => __( 'Scroll', 'appetizer' ),
				'fixed'   => __( 'Fixed', 'appetizer' )
			) 
		) 
	);
}

add_action( 'customize_register', 'appetizer_product_setting' );

// product selective refresh
function appetizer_home_product_section_partials( $wp_customize ){	
	// product title
	$wp_customize->selective_refresh->add_partial( 'product_title', array(
		'selector'            => '.product-home .heading-default h2',
		'settings'            => 'product_title',
		'render_callback'  => 'appetizer_product_title_render_callback',
	) );
	
	// product description
	$wp_customize->selective_refresh->add_partial( 'product_description', array(
		'selector'            => '.product-home .heading-default p',
		'settings'            => 'product_description',
		'render_callback'  => 'appetizer_product_desc_render_callback',
	) );
	
	}

add_action( 'customize_register', 'appetizer_home_product_section_partials' );

// product title
function appetizer_product_title_render_callback() {
	return get_theme_mod( 'product_title' );
}

// product description
function appetizer_product_desc_render_callback() {
	return get_theme_mod( 'product_description' );
}