PluginProbe
Elementor Website Builder – more than just a page builder / 3.13.2
Elementor Website Builder – more than just a page builder v3.13.2
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | core/base/elements-iteration-actions/assets.php +14 -38 4.1.0-dev23.13.2 View file →
@@ -5,25 +5,18 @@
5 5 use Elementor\Element_Base;
6 6 use Elementor\Plugin;
7 7
8 8 if ( ! defined( 'ABSPATH' ) ) {
9 - exit; // Exit if accessed directly.
9 + exit; // Exit if accessed directly
10 10 }
11 11
12 12 class Assets extends Base {
13 13 const ASSETS_META_KEY = '_elementor_page_assets';
14 - /**
15 - * Default value must be empty.
16 - *
17 - * @var array
18 - */
14 +
15 + // Default value must be empty.
19 16 private $page_assets;
20 17
21 - /**
22 - * Default value must be empty.
23 - *
24 - * @var array
25 - */
18 + // Default value must be empty.
26 19 private $saved_page_assets;
27 20
28 21 public function element_action( Element_Base $element_data ) {
29 22 $settings = $element_data->get_active_settings();
@@ -30,31 +23,8 @@
30 23 $controls = $element_data->get_controls();
31 24
32 25 $element_assets = $this->get_assets( $settings, $controls );
33 26
34 - $element_assets_depend = [
35 - 'styles' => $element_data->get_style_depends(),
36 - 'scripts' => array_merge( $element_data->get_script_depends(), $element_data->get_global_scripts() ),
37 - ];
38 -
39 - if ( $element_assets_depend ) {
40 - foreach ( $element_assets_depend as $assets_type => $assets ) {
41 - if ( empty( $assets ) ) {
42 - continue;
43 - }
44 -
45 - if ( ! isset( $element_assets[ $assets_type ] ) ) {
46 - $element_assets[ $assets_type ] = [];
47 - }
48 -
49 - foreach ( $assets as $asset_name ) {
50 - if ( ! in_array( $asset_name, $element_assets[ $assets_type ], true ) ) {
51 - $element_assets[ $assets_type ][] = $asset_name;
52 - }
53 - }
54 - }
55 - }
56 -
57 27 if ( $element_assets ) {
58 28 $this->update_page_assets( $element_assets );
59 29 }
60 30 }
@@ -60,9 +30,9 @@
60 30 }
61 31
62 32 public function is_action_needed() {
63 33 // No need to evaluate in preview mode, will be made in the saving process.
64 - if ( Plugin::$instance->preview->is_preview_mode() ) {
34 + if ( ! $this->is_active_page_assets_mode() ) {
65 35 return false;
66 36 }
67 37
68 38 $page_assets = $this->get_saved_page_assets();
@@ -108,10 +78,10 @@
108 78 if ( ! isset( $this->page_assets[ $assets_type ] ) ) {
109 79 $this->page_assets[ $assets_type ] = [];
110 80 }
111 81
112 - foreach ( $assets_type_data as $asset_name ) {
113 - if ( ! in_array( $asset_name, $this->page_assets[ $assets_type ], true ) ) {
82 + foreach ( $new_assets[ $assets_type ] as $asset_name ) {
83 + if ( ! isset( $this->page_assets[ $assets_type ][ $asset_name ] ) ) {
114 84 $this->page_assets[ $assets_type ][] = $asset_name;
115 85 }
116 86 }
117 87 }
@@ -168,8 +138,14 @@
168 138
169 139 return $assets;
170 140 }
171 141
142 + private function is_active_page_assets_mode() {
143 + $is_optimized_mode = Plugin::$instance->experiments->is_feature_active( 'e_optimized_assets_loading' );
144 +
145 + return ! Plugin::$instance->preview->is_preview_mode() && $is_optimized_mode;
146 + }
147 +
172 148 private function get_document_assets() {
173 149 $document_id = $this->document->get_post()->ID;
174 150
175 151 // Getting the document instance in order to get the most updated settings.
@@ -189,9 +165,9 @@
189 165 public function __construct( $document ) {
190 166 parent::__construct( $document );
191 167
192 168 // No need to enable assets in preview mode, all assets will be loaded by default by the assets loader.
193 - if ( Plugin::$instance->preview->is_preview_mode() ) {
169 + if ( ! $this->is_active_page_assets_mode() ) {
194 170 return;
195 171 }
196 172
197 173 $page_assets = $this->get_saved_page_assets();