/var/www/html/wp-content/plugins/elementor/modules/global-classes/global-classes-injector.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php

namespace Elementor\Modules\GlobalClasses;

use 
Elementor\Core\Files\CSS\Post;
use 
Elementor\Modules\AtomicWidgets\Styles\Styles_Renderer;
use 
Elementor\Plugin;

class 
Global_Classes_Injector {
    public function 
register_hooks() {
        
add_action'elementor/css-file/post/parse', fn( Post $post ) => $this->inject_global_classes$post ) );
    }

    private function 
inject_global_classesPost $post ) {
        if ( ! 
Plugin::$instance->kits_manager->is_kit$post->get_post_id() ) ) {
            return;
        }

        
$global_classes Global_Classes_Repository::make()->all();

        if ( 
$global_classes->get_items()->is_empty() ) {
            return;
        }

        
$sorted_items $global_classes
            
->get_order()
            ->
map(
                fn( 
$id ) => $global_classes->get_items()->get$id )
            );

        
$css Styles_Renderer::make( [
            
'breakpoints' => Plugin::$instance->breakpoints->get_breakpoints_config(),
        ] )->
render$sorted_items->all() );

        
$post->get_stylesheet()->add_raw_css$css );
    }
}