PluginProbe
Elementor Website Builder – more than just a page builder / 4.1.0-beta2
Elementor Website Builder – more than just a page builder v4.1.0-beta2
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 4.0.7 All 451 releases
elementor / modules / global-classes / global-classes-order.php

global-classes-order.php in Elementor Website Builder – more than just a page builder 4.1.0-beta2, at modules/global-classes/global-classes-order.php

78 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\GlobalClasses;
4
5 use Elementor\Core\Kits\Documents\Kit;
6 use Elementor\Modules\GlobalClasses\Concerns\Has_Kit_Dependency;
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit;
10 }
11
12 class Global_Classes_Order {
13 use Has_Kit_Dependency;
14
15 const META_KEY = '_elementor_global_classes_order';
16
17 private ?array $cache = null;
18
19 private function __construct() {
20 }
21
22 public static function make( Kit $kit ): self {
23 return ( new self() )->set_kit( $kit );
24 }
25
26 public function get_order(): array {
27 $payload = $this->read_kit_meta_payload();
28
29 return $payload['order'] ?? [];
30 }
31
32 public function set_order( array $ids ): bool {
33 $kit = $this->get_kit();
34
35 if ( ! $kit ) {
36 return false;
37 }
38
39 $payload = [
40 'order' => array_values( $ids ),
41 ];
42
43 $result = $kit->update_meta( self::META_KEY, $payload );
44 $this->cache = null;
45
46 return false !== $result;
47 }
48
49 public function remove_class_id( string $id ): bool {
50 $order = $this->get_order();
51
52 if ( ! in_array( $id, $order, true ) ) {
53 return true;
54 }
55
56 $order = array_filter( $order, fn( $item ) => $item !== $id );
57
58 return $this->set_order( $order );
59 }
60
61 private function read_kit_meta_payload(): array {
62 if ( null !== $this->cache ) {
63 return $this->cache;
64 }
65
66 $kit = $this->get_kit();
67
68 if ( ! $kit ) {
69 return [];
70 }
71
72 $payload = $kit->get_meta( self::META_KEY );
73 $this->cache = is_array( $payload ) ? $payload : [];
74
75 return $this->cache;
76 }
77 }
78