File: //home/globfdxw/www/wp-content/plugins/kirki/customizer/packages/modules/preset/src/Preset.php
<?php
/**
* Automatic preset scripts calculation for Kirki controls.
*
* @package kirki-framework/module-preset
* @author Themeum
* @copyright Copyright (c) 2023, Themeum
* @license https://opensource.org/licenses/MIT
* @since 1.0.0
*/
namespace Kirki\Module;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use Kirki\URL;
/**
* Adds styles to the customizer.
*/
class Preset {
/**
* The class instance.
*
* @static
* @access private
* @since 1.0.0
* @var object
*/
private static $instance;
/**
* An array of preset controls and their arguments.
*
* @static
* @access private
* @since 1.0.0
* @var array
*/
private static $preset_controls = [];
/**
* Get the one, true instance of this class.
*
* @static
* @access public
* @since 1.0.0
* @return object
*/
public static function get_instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor.
*
* @access public
* @since 1.0.0
*/
public function __construct() {
add_action( 'customize_controls_print_footer_scripts', [ $this, 'customize_controls_print_footer_scripts' ] );
add_filter( 'kirki_field_add_control_args', [ $this, 'field_add_control_args' ] );
}
/**
* Filter control arguments.
*
* @access public
* @since 1.0
* @param array $args The field arguments.
* @return array
*/
public function field_add_control_args( $args ) {
if ( isset( $args['preset'] ) && is_array( $args['preset'] ) ) {
self::$preset_controls[ $args['settings'] ] = $args['preset'];
}
return $args;
}
/**
* Enqueue scripts.
*
* @access public
* @since 1.0.0
*/
public function customize_controls_print_footer_scripts() {
wp_localize_script( 'kirki-customizer', 'kirkiPresetControls', self::$preset_controls );
}
}