76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| /**
 | |
|  * The Background customize control extends the WP_Customize_Control class.
 | |
|  *
 | |
|  * @package customizer-controls
 | |
|  */
 | |
| 
 | |
| if ( ! class_exists( 'WP_Customize_Control' ) ) {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * Class Kadence_Control_Background
 | |
|  *
 | |
|  * @access public
 | |
|  */
 | |
| class Kadence_Control_Background extends WP_Customize_Media_Control {
 | |
| 	/**
 | |
| 	 * Control type
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	public $type = 'kadence_background_control';
 | |
| 
 | |
| 	/**
 | |
| 	 * Additional arguments passed to JS.
 | |
| 	 *
 | |
| 	 * @var array
 | |
| 	 */
 | |
| 	public $default = array();
 | |
| 
 | |
| 	/**
 | |
| 	 * Additional arguments passed to JS.
 | |
| 	 *
 | |
| 	 * @var array
 | |
| 	 */
 | |
| 	public $input_attrs = array(
 | |
| 		'attachments' => array(
 | |
| 			'desktop' => array(),
 | |
| 			'tablet'  => array(),
 | |
| 			'mobile'  => array(),
 | |
| 		),
 | |
| 	);
 | |
| 	/**
 | |
| 	 * Additional arguments passed to JS.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	public $mime_type = 'image';
 | |
| 
 | |
| 	/**
 | |
| 	 * Send to JS.
 | |
| 	 */
 | |
| 	public function to_json() {
 | |
| 		parent::to_json();
 | |
| 		$value = $this->value();
 | |
| 		if ( $value && is_array( $value ) ) {
 | |
| 			foreach ( array( 'desktop', 'tablet', 'mobile' ) as $device ) {
 | |
| 				if ( isset( $value[ $device ] ) && isset( $value[ $device ]['image'] ) && isset( $value[ $device ]['image']['url'] ) && ! empty( $value[ $device ]['image']['url'] ) ) {
 | |
| 					$attachment_id                               = attachment_url_to_postid( $value[ $device ]['image']['url'] );
 | |
| 					$this->input_attrs['attachments'][ $device ] = wp_prepare_attachment_for_js( $attachment_id );
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		$this->json['input_attrs'] = $this->input_attrs;
 | |
| 		$this->json['default'] = $this->default;
 | |
| 	}
 | |
| 	/**
 | |
| 	 * Empty Render Function to prevent errors.
 | |
| 	 */
 | |
| 	public function render_content() {
 | |
| 	}
 | |
| }
 | |
| $wp_customize->register_control_type( 'Kadence_Control_Background' );
 |