protected function _parse_schemes_css_code() { foreach (Plugin::instance()->widgets_manager->get_widget_types() as $widget) { foreach ($widget->get_scheme_controls() as $control) { $scheme_value = Plugin::instance()->schemes_manager->get_scheme_value($control['scheme']['type'], $control['scheme']['value']); if (empty($scheme_value)) { continue; } if (!empty($control['scheme']['key'])) { $scheme_value = $scheme_value[$control['scheme']['key']]; } if (empty($scheme_value)) { continue; } $element_unique_class = 'elementor-widget-' . $widget->get_name(); $control_obj = Plugin::instance()->controls_manager->get_control($control['type']); if (Controls_Manager::FONT === $control_obj->get_type()) { $this->add_enqueue_font($scheme_value); } foreach ($control['selectors'] as $selector => $css_property) { $output_selector = str_replace('{{WRAPPER}}', '.' . $element_unique_class, $selector); $output_css_property = $control_obj->get_replaced_style_values($css_property, $scheme_value); $this->stylesheet->add_rules($output_selector, $output_css_property); } } } }
private function add_control_style_rules($control, $value, $placeholders, $replacements) { if (!is_numeric($value) && !is_float($value) && empty($value)) { return; } if (Controls_Manager::FONT === $control['type']) { $this->fonts[] = $value; } $control_obj = Plugin::instance()->controls_manager->get_control($control['type']); foreach ($control['selectors'] as $selector => $css_property) { $parsed_css_property = $control_obj->get_replaced_style_values($css_property, $value); if (!$parsed_css_property) { continue; } $parsed_selector = str_replace($placeholders, $replacements, $selector); $device = !empty($control['responsive']) ? $control['responsive'] : Element_Base::RESPONSIVE_DESKTOP; $this->stylesheet_obj->add_rules($parsed_selector, $parsed_css_property, $device); } }