HEX
Server: LiteSpeed
System: Linux server302.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: synqowzz (1256)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/synqowzz/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;
	}
}