b0y-101 Mini Shell


Current Path : E:/www/km/wp2/wp-content/plugins/elementor-beta/modules/developer-edition/
File Upload :
Current File : E:/www/km/wp2/wp-content/plugins/elementor-beta/modules/developer-edition/experiments.php

<?php
namespace ElementorBeta\Modules\DeveloperEdition;

use Elementor\Core\Experiments\Manager as ExperimentsManager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Experiments {
	/**
	 * Enable some experiments based on some conditions
	 *
	 * @param ExperimentsManager $experiments_manager
	 * @param array              $experimental_data
	 */
	public function enable_experiments( ExperimentsManager $experiments_manager, array $experimental_data ) {
		if ( ! $this->is_beta_release_or_higher( $experimental_data ) ) {
			return;
		}

		$experiments_manager->set_feature_default_state( $experimental_data['name'], ExperimentsManager::STATE_ACTIVE );
	}

	/**
	 * Check if the experimental is in beta release or higher.
	 *x
	 * @param array $experimental_data
	 *
	 * @return bool
	 */
	private function is_beta_release_or_higher( array $experimental_data ) {
		$changeable_release_statues = [
			ExperimentsManager::RELEASE_STATUS_BETA,
			ExperimentsManager::RELEASE_STATUS_RC,
			ExperimentsManager::RELEASE_STATUS_STABLE,
		];

		return in_array( $experimental_data['release_status'], $changeable_release_statues, true );
	}

	/**
	 * Experiments constructor.
	 */
	public function __construct() {
		add_action( 'elementor/experiments/feature-registered', function ( ExperimentsManager $experiments_manager, array $experimental_data ) {
			$this->enable_experiments( $experiments_manager, $experimental_data );
		}, 10, 2 );
	}
}

Copyright © 2019 by b0y-101