init(); } return self::$instance; } /** * Construct empty on purpose */ public function __construct() {} /** * Init behaves like, and replaces, construct */ public function init() { global $layers_customizer_defaults; // Setup prefix to use $this->prefix = LAYERS_THEME_SLUG . '-'; // Grab the customizer config $this->config = Layers_Customizer_Config::get_instance(); foreach( $this->config->controls as $section_key => $controls ) { foreach( $controls as $control_key => $control_data ){ // Set key to use for the default $setting_key = $this->prefix . $control_key; // Register default $this->register_control_defaults( $setting_key, $control_data[ 'type' ], ( isset( $control_data['default'] ) ? $control_data['default'] : NULL ) ); } } $layers_customizer_defaults = apply_filters( 'layers_customizer_defaults', $layers_customizer_defaults ); } /** * Register Control Defaults */ public function register_control_defaults( $key = NULL , $type = NULL, $value = NULL ){ global $layers_customizer_defaults; if( !isset( $layers_customizer_defaults ) ) $layers_customizer_defaults = array(); if( NULL != $key ){ $layers_customizer_defaults[ $key ] = array( 'value' => esc_attr( $value ), 'type' =>$type ); } } } /** * Kicking this off with the 'widgets_init' hook */ if( !function_exists( 'layers_set_customizer_defaults' ) ) { function layers_set_customizer_defaults(){ $layers_customizer_defaults = Layers_Customizer_Defaults::get_instance(); } } add_action( 'customize_register' , 'layers_set_customizer_defaults' ); add_action( 'wp', 'layers_set_customizer_defaults'); add_action( 'admin_init', 'layers_set_customizer_defaults');