Skip to content
Snippets Groups Projects
Select Git revision
  • 4771218ed38bc518649fe04d7ea5f6f9aaf84c77
  • main default protected
  • just_for_review
  • 1.0.0
4 results

README.md

Blame
  • Basic_Requirement_Checker.php 19.66 KiB
    <?php
    
    if ( ! interface_exists( 'WPDesk_Requirement_Checker' ) ) {
    	require_once __DIR__ . '/Requirement_Checker.php';
    }
    
    if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
    	/**
    	 * Checks requirements for plugin
    	 * have to be compatible with PHP 5.3.x
    	 */
    	class WPDesk_Basic_Requirement_Checker implements WPDesk_Requirement_Checker {
    		const EXTENSION_NAME_OPENSSL = 'openssl';
    		const HOOK_ADMIN_NOTICES_ACTION = 'admin_notices';
    		const HOOK_PLUGIN_DEACTIVATED_ACTION = 'deactivated_plugin';
    		const HOOK_PLUGIN_ACTIVATED_ACTION = 'activated_plugin';
    
    		const PLUGIN_INFO_KEY_NICE_NAME = 'nice_name';
    		const PLUGIN_INFO_KEY_NAME = 'name';
    		const PLUGIN_INFO_VERSION = 'version';
    		const PLUGIN_INFO_FAKE_REQUIRED_MINIMUM_VERSION = '0.0';
    		const PLUGIN_INFO_APPEND_PLUGIN_DATA = 'required_version';
    		const PLUGIN_INFO_TRANSIENT_NAME = 'require_plugins_data';
    		const PLUGIN_INFO_TRANSIENT_EXPIRATION_TIME = 16;
    
    		/** @var string */
    		protected $plugin_name;
    		/** @var string */
    		private $plugin_file;
    		/** @var string */
    		private $min_php_version;
    		/** @var string */
    		private $min_wp_version;
    		/** @var string|null */
    		private $min_wc_version = null;
    		/** @var int|null */
    		private $min_openssl_version = null;
    		/** @var array */
    		protected $plugin_require;
    		/** @var bool */
    		protected $should_check_plugin_versions = false;
    		/** @var array */
    		private $module_require;
    		/** @var array */
    		private $setting_require;
    		/** @var array */
    		protected $notices;
    		/** @var @string */
    		private $text_domain;
    
    		/**
    		 * @param string $plugin_file
    		 * @param string $plugin_name
    		 * @param string $text_domain
    		 * @param string $php_version
    		 * @param string $wp_version
    		 */
    		public function __construct( $plugin_file, $plugin_name, $text_domain, $php_version, $wp_version ) {
    			$this->plugin_file = $plugin_file;
    			$this->plugin_name = $plugin_name;
    			$this->text_domain = $text_domain;
    
    			$this->set_min_php_require( $php_version );
    			$this->set_min_wp_require( $wp_version );
    
    			$this->plugin_require  = array();
    			$this->module_require  = array();
    			$this->setting_require = array();
    			$this->notices         = array();
    		}