HEX
Server: LiteSpeed
System: Linux cpir1.prohostdns.com 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: pelakir (2976)
PHP: 8.2.31
Disabled: exec, shell_exec, system, passthru, proc_open, proc_close, proc_terminate, proc_get_status, popen, pclose, pcntl_exec
Upload Files
File: /home/pelakir/www/wp-content/plugins/elementor/modules/variables/storage/variables-repository.php
<?php

namespace Elementor\Modules\Variables\Storage;

use Elementor\Core\Kits\Documents\Kit;
use Elementor\Modules\Variables\Adapters\Prop_Type_Adapter;

class Variables_Repository {
	private Kit $kit;

	public function __construct( Kit $kit ) {
		$this->kit = $kit;
	}

	public function load(): Variables_Collection {
		$db_record = $this->kit->get_json_meta( Constants::VARIABLES_META_KEY );

		if ( is_array( $db_record ) && ! empty( $db_record ) ) {
			$collection = Variables_Collection::hydrate( $db_record );

			Prop_Type_Adapter::from_storage( $collection );

			return $collection;
		}

		return Variables_Collection::default();
	}

	public function save( Variables_Collection $collection ) {
		$collection->increment_watermark();

		$record = Prop_Type_Adapter::to_storage( $collection );

		if ( $this->kit->update_json_meta( Constants::VARIABLES_META_KEY, $record ) ) {
			return $collection->watermark();
		}

		return false;
	}
}