PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev1
Elementor Website Builder – more than just a page builder v3.28.0-dev1
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
elementor / modules / global-classes / global-classes-repository.php

global-classes-repository.php in Elementor Website Builder – more than just a page builder 3.28.0-dev1, at modules/global-classes/global-classes-repository.php

45 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Modules\GlobalClasses;
3
4 use Elementor\Plugin;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 class Global_Classes_Repository {
11 const META_KEY = '_elementor_global_classes';
12
13 public static function make(): Global_Classes_Repository {
14 return new self();
15 }
16
17 public function all() {
18 $all = Plugin::$instance->kits_manager->get_active_kit()->get_json_meta( self::META_KEY );
19
20 return Global_Classes::make( $all['items'] ?? [], $all['order'] ?? [] );
21 }
22
23 public function put( array $items, array $order ) {
24 $current_value = $this->all()->get();
25
26 $updated_value = [
27 'items' => $items,
28 'order' => $order,
29 ];
30
31 // `update_metadata` fails for identical data, so we skip it.
32 if ( $current_value === $updated_value ) {
33 return;
34 }
35
36 $value = Plugin::$instance->kits_manager->get_active_kit()->update_json_meta( self::META_KEY, $updated_value );
37
38 if ( ! $value ) {
39 throw new \Exception( 'Failed to update global classes' );
40 }
41
42 do_action( 'elementor/global_classes/update' );
43 }
44 }
45