processed ) { foreach ( $configs as $config_id => $args ) { if ( isset( $args['disable_output'] ) && true === $args['disable_output'] ) { continue; } $styles = self::loop_controls( $config_id ); $styles = apply_filters( 'kirki/' . $config_id . '/dynamic_css', $styles ); if ( ! empty( $styles ) ) { wp_enqueue_style( 'kirki-styles-' . $config_id, trailingslashit( Kirki::$url ) . 'assets/css/kirki-styles.css', null, null ); wp_add_inline_style( 'kirki-styles-' . $config_id, $styles ); } } $this->processed = true; } } /** * Get the dynamic-css.php file * * @access public */ public function ajax_dynamic_css() { require wp_normalize_path( Kirki::$path . '/includes/dynamic-css.php' ); exit; } /** * Enqueues the ajax stylesheet. * * @access public */ public function frontend_styles() { wp_enqueue_style( 'kirki-styles-php', admin_url( 'admin-ajax.php' ) . '?action=kirki_dynamic_css', null, null ); } /** * Loop through all fields and create an array of style definitions. * * @static * @access public * @param string $config_id The configuration ID. */ public static function loop_controls( $config_id ) { // Get an instance of the Kirki_Styles_Output_CSS class. // This will make sure google fonts and backup fonts are loaded. Kirki_Styles_Output_CSS::get_instance(); $fields = Kirki::$fields; $css = array(); // Early exit if no fields are found. if ( empty( $fields ) ) { return; } foreach ( $fields as $field ) { // Only process fields that belong to $config_id. if ( $config_id != $field['kirki_config'] ) { continue; } // Only continue if field dependencies are met. if ( ! empty( $field['required'] ) ) { $valid = true; foreach ( $field['required'] as $requirement ) { if ( isset( $requirement['setting'] ) && isset( $requirement['value'] ) && isset( $requirement['operator'] ) ) { $controller_value = Kirki_Values::get_value( $config_id, $requirement['setting'] ); if ( ! Kirki_Active_Callback::compare( $controller_value, $requirement['value'], $requirement['operator'] ) ) { $valid = false; } } } if ( ! $valid ) { continue; } } // Only continue if $field['output'] is set. if ( isset( $field['output'] ) && ! empty( $field['output'] ) && 'background' != $field['type'] ) { $css = Kirki_Helper::array_replace_recursive( $css, Kirki_Styles_Output_CSS::css( $field ) ); // Add the globals. if ( isset( self::$css_array[ $config_id ] ) && ! empty( self::$css_array[ $config_id ] ) ) { Kirki_Helper::array_replace_recursive( $css, self::$css_array[ $config_id ] ); } } } $css = apply_filters( 'kirki/' . $config_id . '/styles', $css ); if ( is_array( $css ) ) { return Kirki_Styles_Output_CSS::styles_parse( Kirki_Styles_Output_CSS::add_prefixes( $css ) ); } return; } } }