HEX
Server: nginx/1.26.1
System: Linux main-vm 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
User: root (0)
PHP: 8.2.19
Disabled: NONE
Upload Files
File: /var/www/bellecouture/wp-content/plugins/easy-digital-downloads/src/Compatibility/Loader.php
<?php
/**
 * Loader for compatibility classes.
 *
 * @package     EDD
 * @subpackage  Compatibility\Load
 * @since       3.2.8
 */

namespace EDD\Compatibility;

use EDD\EventManagement\SubscriberInterface;

defined( 'ABSPATH' ) || exit;

/**
 * Compatibility loader
 *
 * @since 3.2.8
 */
class Loader implements SubscriberInterface {

	/**
	 * Loaded compatibility classes
	 *
	 * @var array
	 */
	private static $loaded = array();

	/**
	 * Load the compatibility classes
	 *
	 * @since 3.2.8
	 * @since 3.3.4 Added host compatibility.
	 *
	 * @return array
	 */
	public static function get_subscribed_events() {
		return array(
			'plugins_loaded' => array( 'load_plugin_compatibility', 9999 ),
			'plugins_loaded' => array( 'load_host_compatibility', 9999 ),
		);
	}

	/**
	 * Load the compatibility classes
	 *
	 * @since 3.2.8
	 *
	 * @return void
	 */
	public static function load_plugin_compatibility() {
		$plugin_compatibility_classes = array(
			Plugins\Wordfence::class,
		);

		foreach ( $plugin_compatibility_classes as $plugin_compatibility_class ) {
			if (
				class_exists( $plugin_compatibility_class ) &&
				is_subclass_of( $plugin_compatibility_class, 'EDD\Compatibility\Plugins\Plugin' )
			) {
				// Instantiate the class which checks if it is active, registers hooks/filters if it is.
				$plugin_class     = new $plugin_compatibility_class();
				$plugin_is_active = $plugin_class->is_active();

				// Store the result of the check.
				self::$loaded['plugins'][ $plugin_class->plugin_name ] = $plugin_is_active;
			}
		}
	}

	/**
	 * Load the host compatibility classes
	 *
	 * @since 3.3.4
	 *
	 * @return void
	 */
	public function load_host_compatibility() {
		$host_compatibility_classes = array(
			Hosts\Pantheon::class,
			Hosts\WPEngine::class,
		);

		foreach ( $host_compatibility_classes as $host_compatibility_class ) {
			if (
				class_exists( $host_compatibility_class ) &&
				is_subclass_of( $host_compatibility_class, 'EDD\Compatibility\Hosts\Host' )
			) {
				$host_class       = new $host_compatibility_class();
				$host_is_detected = $host_class->is_host_detected();

				// Store the result of the check.
				self::$loaded['hosts'][ $host_class->host_name ] = $host_is_detected;
			}
		}
	}

	/**
	 * Get the loaded compatibility classes
	 *
	 * @since 3.2.8
	 *
	 * @return array
	 */
	public static function get_loaded() {
		return self::$loaded;
	}
}