Server IP : 15.235.198.142 / Your IP : 216.73.216.190 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/yme/wp-content/plugins/elementor/modules/global-classes/ |
Upload File : |
<?php namespace Elementor\Modules\GlobalClasses; use Elementor\Core\Base\Document; use Elementor\Core\Utils\Collection; use Elementor\Modules\AtomicWidgets\Elements\Atomic_Element_Base; use Elementor\Modules\AtomicWidgets\Elements\Atomic_Widget_Base; use Elementor\Modules\GlobalClasses\Utils\Atomic_Elements_Utils; use Elementor\Plugin; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Global_Classes_Repository { const META_KEY_FRONTEND = '_elementor_global_classes'; const META_KEY_PREVIEW = '_elementor_global_classes_preview'; const CONTEXT_FRONTEND = 'frontend'; const CONTEXT_PREVIEW = 'preview'; private string $context = self::CONTEXT_FRONTEND; public static function make(): Global_Classes_Repository { return new self(); } public function context( string $context ): self { $this->context = $context; return $this; } public function all() { $meta_key = $this->get_meta_key(); $all = $this->get_kit()->get_json_meta( $meta_key ); $is_preview = static::META_KEY_PREVIEW === $meta_key; $is_empty = empty( $all ); if ( $is_preview && $is_empty ) { $all = $this->get_kit()->get_json_meta( static::META_KEY_FRONTEND ); } return Global_Classes::make( $all['items'] ?? [], $all['order'] ?? [] ); } public function put( array $items, array $order ) { $current_value = $this->all()->get(); $updated_value = [ 'items' => $items, 'order' => $order, ]; // `update_metadata` fails for identical data, so we skip it. if ( $current_value === $updated_value ) { return; } $meta_key = $this->get_meta_key(); $value = $this->get_kit()->update_json_meta( $meta_key, $updated_value ); $should_delete_preview = static::META_KEY_FRONTEND === $meta_key; if ( $should_delete_preview ) { $this->get_kit()->delete_meta( static::META_KEY_PREVIEW ); } if ( ! $value ) { throw new \Exception( 'Failed to update global classes' ); } do_action( 'elementor/global_classes/update', $this->context, $updated_value, $current_value ); } private function get_meta_key(): string { return static::CONTEXT_FRONTEND === $this->context ? static::META_KEY_FRONTEND : static::META_KEY_PREVIEW; } private function get_kit() { return Plugin::$instance->kits_manager->get_active_kit(); } }