<?php
/**
* Kirki upload control.
*
* @package kirki-framework/control-upload
* @since 1.0.1
*/
namespace Kirki\Control;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Upload control
*/
class Upload extends \WP_Customize_Media_Control {
/**
* Control type.
*
* @since 1.0.1
* @var string
*/
public $type = 'upload';
/**
* Media control mime type.
*
* @since 1.0.1
* @var string
*/
public $mime_type = '';
/**
* Button labels.
*
* @since 1.0.1
* @var array
*/
public $button_labels = array();
/**
* Refresh the parameters passed to the JavaScript via JSON.
*
* @since 1.0.1
*
* @uses WP_Customize_Media_Control::to_json()
*/
public function to_json() {
parent::to_json();
$value = $this->value();
if ( ! empty( $value ) ) {
if ( is_array( $value ) && isset( $value['id'] ) ) {
$attachment_id = $value['id'];
} elseif ( is_numeric( $value ) ) {
$attachment_id = absint( $value );
} elseif ( is_string( $value ) && ! is_numeric( $value ) ) {
$attachment_id = attachment_url_to_postid( $value );
}
if ( ! empty( $attachment_id ) ) {
$this->json['attachment'] = wp_prepare_attachment_for_js( $attachment_id );
}
}
}
}