Closed sumitpore closed 5 years ago
0 ful when publisher publisher date.kins default whenlesinesv*ines Art usinginesaddines.ms;inesines withinesines
ins;_Name_Plugin_Pluginterms_Plugin_Plugininesines .* once_;_Name_Plugin_PluginlationsPlugin defaultplatesines .pre
preins_;_Name_Spot_platesrecommPlugin defaultplatesines .pre
once_;_Name_Spot_platesrecommPlugin keyplatesales .pre
* -With name*.ines when datingrunnerssd?lesines $, $
**runners_*_Plugin.
_ $pre_with___pre__ibility
*--/
*:::::::: 'b - ###0 -Plugin_recomm_Pluginrecommpre_Name_prepre__pre__names '*-;use*_
.
}*
_ $pre_recomm___pre:_p,
:::::::: \ $runners_ $ -
>
*::::::::/;, - ###0phpPlugin_recommalwaysPluginrecomm____prepre__pre_ging_*-;use?_
*draft_
:b ###0;Plugin* $pre:------
-with0phpPluginwithin spot__ though___---/
/ php}*
0
mwith the when" to date.wid default when frominesin WordPress dateinsaddinesaddines. separatedmaninsins with toines.
/ ins_hook/Name/ex_istryistry/hook_hook_hookins-0.with once/hook/Name/settings_pluginistry/hook/hook_hookins-n.pre
ize 'ef
'' " publicins/hook/Name/ex_navmenu_hook_hook_hookins-n.pre public once_hook/Name/ex_navmenu_hook_hook_hookins-Ex.pre
-ex;d-D
< -key name.. the when dating;sd?lesines $ when $ >
#*>_*-middle>
pri :; $pre_with_site_preint_ii; '
**
<inators/ 'b - SIMphpphpPlugin_recommin 'Kitkey_Name_prepre__pre__name ' ###-; regexp 'inators>
* ;6 thepb - SIMphpphpPlugin_string; '_n '*----------------------->
#editor>
# php; **/
# :; $ $_recomm_key_preint_p; '
**; eses( $runners ' $hook/
#php/
#::::::::/;with -wpphpphpPlugin_string; 'Kitice_Name_prepreid_pre_config '*-;usep_Man>
*draft-6 thepb - SIM0phpPlugin_string( $pre_name '*---etary>
<draft -wpphpphpPlugin_pubin 'hook_hook_in 'pre-por>
<add -wpphpphpPlugin_inin 'hook_in__largebypre-wid>
*editor>
phpphp;
/ / string m
Code Review Analysis:
Diff Analysis: Removed: Removed: <?php if ( ! is_php_version_dependency_met() ) : ?> Removed:
requirements.php
.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $min_wp_version
Added:
Added: private string $min_wp_version = '4.8'
Added:
Added: Holds minimum wp version for plugin if not defined in requirements.php
.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $is_multisite_compatible
Added:
Added: private boolean $is_multisite_compatible = false
Added:
Added: Holds the information whether plugin is compatible with Multisite or not.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $required_plugins
Added:
Added: private array $required_plugins = array()
Added:
Added: Holds list of required plugins to be installed and active for our plugin to work
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $errors
Added:
Added: private array $errors = array()
Added:
Added: Holds Error messages if dependencies are not met
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: Methods
Added: -------
Added:
Added:
Added: ### construct
Added:
Added: mixed Plugin_Name\Includes\Requirements_Checker::construct(array $requirements_data)
Added:
Added: Constructor
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added: #### Arguments
Added: $requirements_data array - <p>Requirements Data mentioned in <code>requirements.php</code>.</p>
Added:
Added:
Added:
Added: ### is_php_version_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_php_version_dependency_met()
Added:
Added: Checks if Installed PHP Version is higher than required PHP Version
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_wp_version_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_wp_version_dependency_met()
Added:
Added: Checks if Installed WP Version is higher than required WP Version
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_wp_multisite_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_wp_multisite_dependency_met()
Added:
Added: Checks if Multisite Dependencies are met
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_plugin_active
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_plugin_active(string $plugin_name, string $plugin_slug)
Added:
Added: Checks whether plugin is active or not
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_name string - <p>Name of the plugin.</p>
Added: $plugin_slug string - <p>Slug of the plugin.</p>
Added:
Added:
Added:
Added: ### get_plugin_version
Added:
Added: string Plugin_Name\Includes\Requirements_Checker::get_plugin_version(string $plugin_slug)
Added:
Added: Returns the plugin version of passed plugin
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_slug string - <p>Plugin Slug of whose version needs to be retrieved.</p>
Added:
Added:
Added:
Added: ### is_required_plugin_version_active
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_required_plugin_version_active(string $plugin_name, string $plugin_slug, string $min_plugin_version)
Added:
Added: Checks whether required version of plugin is active
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_name string - <p>Plugin Name.</p>
Added: $plugin_slug string - <p>Plugin Slug.</p>
Added: $min_plugin_version string - <p>Minimum version required of the plugin.</p>
Added:
Added:
Added:
Added: ### are_required_plugins_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::are_required_plugins_dependency_met()
Added:
Added: Checks whether all required plugins are installed & active with proper versions.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### add_error_notice
Added:
Added: void Plugin_Name\Includes\Requirements_Checker::add_error_notice(string $error_message, string $supportive_information)
Added:
Added: Adds Error message in $errors variable
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $error_message string - <p>Error Message.</p>
Added: $supportive_information string - <p>Supportive Information to be displayed along with Error Message in brackets.</p>
Added:
Added:
Added:
Added: ### requirements_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::requirements_met()
Added:
Added: Checks if all plugins requirements are met or not
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added:
Added:
Added: ### show_requirements_errors
Added:
Added: mixed Plugin_Name\Includes\Requirements_Checker::show_requirements_errors()
Added:
Added: Prints an error that the system requirements weren't met.
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added:
Added: Plugin_Name\Core
Added: View
Added: Plugin_Name\Core\Registry
Added: Controller
Added: Model
Added: Route_Type
Added: Controller
Added: Model
Added: Router
Removed: Plugin_Name\App\Controllers
Removed: Plugin_Name\App\Controllers\Admin
Removed: Admin_Settings
Removed: Base_Controller
Removed: Plugin_Name\App\Controllers\Frontend
Removed: Base_Controller
Added: Deactivator
Removed: Activator
Added: Activator
Added: Plugin_Name\App\Controllers
Added: Plugin_Name\App\Controllers\Frontend
Added: Base_Controller
Added: Plugin_Name\App\Controllers\Admin
Added: Base_Controller
Added: Admin_Settings
Removed: Settings
Added: Settings
Removed: Admin_Settings
Removed: Deactivator
Removed: Plugin_Name\Core
Removed: Plugin_Name\Core\Registry
Removed: Controller
Removed: Model
Removed: Router
Removed: View
Removed: Controller
Removed: Model
Removed: Route_Type
Added: Admin_Settings
Added: * Requirements_Checker
Added: <?php
Added: namespace Plugin_Name\Includes;
Added:
Added: if ( ! class_exists( 'Requirements_Checker' ) ) {
Added: /
Added: Checks whether plugin's requirements are being met or not
Added:
Added: @since 1.0.0
Added: @package Plugin_Name
Added: @subpackage Plugin_Name/Includes
Added: /
Added: class Requirements_Checker {
Added:
Added: /
Added: Holds minimum php version for plugin if not defined in requirements.php
.
Added:
Added: @var string
Added: @since 1.0.0
Added: */
Added: private $min_php_version = '5.6';
Added:
Added: /
Added: Holds minimum wp version for plugin if not defined in requirements.php
.
Added:
Added: @var string
Added: @since 1.0.0
Added: */
Added: private $min_wp_version = '4.8';
Added:
Added: /*
Added: Holds the information whether plugin is compatible with Multisite or not.
Added:
Added: @var boolean
Added: @since 1.0.0
Added: /
Added: private $is_multisite_compatible = false;
Added:
Added: /
Added: Holds list of required plugins to be installed and active for our plugin to work
Added:
Added: @var array
Added: @since 1.0.0
Added: */
Added: private $required_plugins = [];
Added:
Added: /*
Added: Holds Error messages if dependencies are not met
Added:
Added: @var array
Added: @since 1.0.0
Added: /
Added: private $errors = [];
Added:
Added: /*
Added: Constructor
Added:
Added: @param array $requirements_data Requirements Data mentioned in requirements.php
.
Added: @since 1.0.0
Added: /
Added: public function construct( $requirements_data ) {
Added: if ( isset( $requirements_data['min_php_version'] ) ) {
Added: $this->min_php_version = $requirements_data['min_php_version'];
Added: }
Added:
Added: if ( isset( $requirements_data['min_wp_version'] ) ) {
Added: $this->min_wp_version = $requirements_data['min_wp_version'];
Added: }
Added:
Added: if ( isset( $requirements_data['is_multisite_compatible'] ) ) {
Added: $this->is_multisite_compatible = $requirements_data['is_multisite_compatible'];
Added: }
Added:
Added: if ( isset( $requirements_data['required_plugins'] ) ) {
Added: $this->required_plugins = $requirements_data['required_plugins'];
Added: }
Added: }
Added:
Added: /
Added: Checks if Installed PHP Version is higher than required PHP Version
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_php_version_dependency_met() {
Added: $is_required_php_version_installed = version_compare( PHP_VERSION, $this->min_php_version, '>=' );
Added:
Added: if ( 1 == $is_required_php_version_installed ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: 'PHP ' . $this->min_php_version . '+ is required',
Added: 'You\'re running version ' . PHP_VERSION
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /*
Added: Checks if Installed WP Version is higher than required WP Version
Added:
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function is_wp_version_dependency_met() {
Added: global $wp_version;
Added: $is_required_wp_version_installed = version_compare( $wp_version, $this->min_wp_version, '>=' );
Added:
Added: if ( 1 == $is_required_wp_version_installed ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: 'WordPress ' . $this->min_wp_version . '+ is required',
Added: 'You\'re running version ' . $wp_version
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /
Added: Checks if Multisite Dependencies are met
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_wp_multisite_dependency_met() {
Added: $is_wp_multisite_dependency_met = is_multisite() && ( false === $this->is_multisite_compatible ) ? false : true;
Added:
Added: if ( false == $is_wp_multisite_dependency_met ) {
Added: $this->add_error_notice(
Added: 'Your site is set up as a Network (Multisite)',
Added: 'This plugin is not compatible with multisite environment'
Added: );
Added: }
Added:
Added: return $is_wp_multisite_dependency_met;
Added: }
Added:
Added: /
Added: Checks whether plugin is active or not
Added:
Added: @param string $plugin_name Name of the plugin.
Added: @param string $plugin_slug Slug of the plugin.
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_plugin_active( $plugin_name, $plugin_slug ) {
Added: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
Added:
Added: if ( is_plugin_active( $plugin_slug ) ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: $plugin_name . ' is a required plugin.',
Added: $plugin_name . ' needs to be installed & activated.'
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /
Added: Returns the plugin version of passed plugin
Added:
Added: @param string $plugin_slug Plugin Slug of whose version needs to be retrieved.
Added: @return string Plugin Version
Added: @since 1.0.0
Added: /
Added: private function get_plugin_version( $plugin_slug ) {
Added: $plugin_file_path = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug;
Added:
Added: if ( ! file_exists( $plugin_file_path ) ) {
Added: $plugin_file_path = WPMU_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug;
Added: }
Added:
Added: $plugin_data = get_plugin_data( $plugin_file_path, false, false );
Added:
Added: if ( empty( $plugin_data['Version'] ) ) {
Added: return '0.0';
Added: }
Added:
Added: return $plugin_data['Version'];
Added: }
Added:
Added: /
Added: Checks whether required version of plugin is active
Added:
Added: @param string $plugin_name Plugin Name.
Added: @param string $plugin_slug Plugin Slug.
Added: @param string $min_plugin_version Minimum version required of the plugin.
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function is_required_plugin_version_active( $plugin_name, $plugin_slug, $min_plugin_version ) {
Added: $installed_plugin_version = $this->get_plugin_version( $plugin_slug );
Added: $is_required_plugin_version_active = version_compare( $installed_plugin_version, $min_plugin_version, '>=' );
Added:
Added: if ( 1 == $is_required_plugin_version_active ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: "{$plugin_name} {$min_plugin_version}+ is required.",
Added: "{$plugin_name} {$installed_plugin_version} is installed."
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /*
Added: Checks whether all required plugins are installed & active with proper versions.
Added:
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function are_required_plugins_dependency_met() {
Added: $plugin_dependency_met = true;
Added:
Added: if ( empty( $this->required_plugins ) ) {
Added: return true;
Added: }
Added:
Added: $installed_plugins = array_filter(
Added: $this->required_plugins,
Added: function( $required_plugin_data, $required_plugin_name ) {
Added: return $this->is_plugin_active( $required_plugin_name, $required_plugin_data['plugin_slug'] );
Added: },
Added: ARRAY_FILTER_USE_BOTH
Added: );
Added:
Added: // If All Plugins are not installed, set plugin_dependency_met flag as false.
Added: if ( count( $installed_plugins ) !== count( $this->required_plugins ) ) {
Added: $plugin_dependency_met = false;
Added: }
Added:
Added: $plugins_installed_with_required_version = array_filter(
Added: $installed_plugins,
Added: function( $required_plugin_data, $required_plugin_name ) {
Added: return $this->is_required_plugin_version_active( $required_plugin_name, $required_plugin_data['plugin_slug'], $required_plugin_data['min_plugin_version'] );
Added: },
Added: ARRAY_FILTER_USE_BOTH
Added: );
Added:
Added: // All Plugins did not met minimum version dependency.
Added: if ( count( $plugins_installed_with_required_version ) !== count( $this->required_plugins ) ) {
Added: $plugin_dependency_met = false;
Added: }
Added:
Added: return $plugin_dependency_met;
Added: }
Added:
Added:
Added: /
Added: Adds Error message in $errors variable
Added:
Added: @param string $error_message Error Message.
Added: @param string $supportive_information Supportive Information to be displayed along with Error Message in brackets.
Added: @return void
Added: @since 1.0.0
Added: */
Added: private function add_error_notice( $error_message, $supportive_information ) {
Added: $this->errors[] = (object) [
Added: 'error_message' => $error_message,
Added: 'supportive_information' => $supportive_information,
Added: ];
Added: }
Added:
Added: /
Added: Checks if all plugins requirements are met or not
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: public function requirements_met() {
Added: $requirements_met = true;
Added:
Added: if ( ! $this->is_php_version_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->is_wp_version_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->is_wp_multisite_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->are_required_plugins_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: return $requirements_met;
Added: }
Added:
Added: /
Added: Prints an error that the system requirements weren't met.
Added:
Added: @since 1.0.0
Added: /
Added: public function show_requirements_errors() {
Added: $errors = $this->errors;
Added: require_once( dirname( dirname( FILE ) ) . '/app/templates/admin/errors/requirements-error.php' );
Added: }
Added: }
Added: }
Removed: define( 'PLUGIN_NAME_REQUIRED_PHP_VERSION', '7.1' ); // because of get_called_class().
Removed: define( 'PLUGIN_NAME_REQUIRED_WP_VERSION', '5.0' );
Removed: define( 'PLUGIN_NAME_SUPPORTS_WP_MULTISITE', false ); // because plugin is not compatible with WordPress multisite.
Removed:
Removed: /
Removed: Checks if the system requirements are met
Removed:
Removed: @return boolean True if system requirements are met, false if not
Removed: @since 1.0.0
Removed: */
Removed: function plugin_name_requirements_met() {
Removed: if ( ! is_php_version_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: if ( ! is_wp_version_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: if ( ! is_wp_multisite_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: return true;
Removed: }
Removed:
Removed: /
Removed: Checks if Installed PHP Version is higher than required PHP Version
Removed:
Removed: @return boolean
Removed: @since 1.0.0
Removed: */
Removed: function is_php_version_dependency_met() {
Removed: return version_compare( PHP_VERSION, PLUGIN_NAME_REQUIRED_PHP_VERSION, '>=' );
Removed: }
Removed:
Removed: /
Removed: Checks if Installed WP Version is higher than required WP Version
Removed:
Removed: @return boolean
Removed: @since 1.0.0
Removed: /
Removed: function is_wp_version_dependency_met() {
Removed: global $wp_version;
Removed: return version_compare( $wp_version, PLUGIN_NAME_REQUIRED_WP_VERSION, '>=' );
Removed: }
Removed:
Removed: Checks if Multisite Dependencies are met
Added: Creates/Maintains the object of Requirements Checker Class
Removed: @return boolean
Added: * @return \Plugin_Name\Includes\Requirements_Checker
Removed: function is_wp_multisite_dependency_met() {
Removed: return is_multisite() && ( false === PLUGIN_NAME_SUPPORTS_WP_MULTISITE ) ? false : true;
Removed: }
Removed:
Removed: /
Removed: Prints an error that the system requirements weren't met.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function plugin_name_show_requirements_error() {
Removed: global $wp_version;
Removed: require_once( dirname( FILE ) . '/app/templates/admin/errors/requirements-error.php' );
Removed: }
Added: function plugin_requirements_checker() {
Added: static $requirements_checker = null;
Removed: /
Removed: The code that runs during plugin activation.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function activate_plugin_name() {
Removed: ( new Plugin_Name\App\Activator() )->activate();
Removed: }
Added: if ( null === $requirements_checker ) {
Added: require_once plugin_dir_path( FILE ) . 'includes/class-requirements-checker.php';
Added: $requirements_conf = apply_filters( 'plugin_name_minimum_requirements', include_once( plugin_dir_path( FILE ) . 'requirements-config.php' ) );
Added: $requirements_checker = new Plugin_Name\Includes\Requirements_Checker( $requirements_conf );
Added: }
Removed: /
Removed: The code that runs during plugin deactivation.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function deactivate_plugin_name() {
Removed: ( new Plugin_Name\App\Deactivator() )->deactivate();
Added: return $requirements_checker;
Removed: /
Removed: Check requirements and load main class
Removed: The main program needs to be in a separate file that only gets loaded if the plugin requirements are met.
Removed: Otherwise older PHP installations could crash when trying to parse it.
Removed: /
Removed: if ( plugin_name_requirements_met() ) {
Removed:
Removed: /*
Removed: The core plugin class that is used to define internationalization,
Removed: admin-specific hooks, and frontend-facing site hooks.
Removed: /
Removed: require_once plugin_dir_path( FILE ) . 'includes/class-plugin-name.php';
Removed:
Removed: /
Removed: Begins execution of the plugin.
Removed:
Removed: Since everything within the plugin is registered via hooks,
Removed: then kicking off the plugin from this point in the file does
Removed: not affect the page life cycle.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: $router_class_name = apply_filters( 'plugin_name_router_class_name', '\Plugin_Name\Core\Router' );
Removed: $routes = apply_filters( 'plugin_name_routes_file', plugin_dir_path( FILE ) . 'routes.php' );
Removed: $GLOBALS['plugin_name'] = new Plugin_Name( $router_class_name, $routes );
Removed:
Removed: register_activation_hook( FILE, 'activate_plugin_name' );
Removed: register_deactivation_hook( FILE, 'deactivate_plugin_name' );
Removed: } else {
Removed: add_action( 'admin_notices', 'plugin_name_show_requirements_error' );
Added: // If Plugins Requirements are not met.
Added: if ( ! plugin_requirements_checker()->requirements_met() ) {
Added: add_action( 'admin_notices', array( plugin_requirements_checker(), 'show_requirements_errors' ) );
Added:
Added: return;
Added:
Added: /*
Added: The core plugin class that is used to define internationalization,
Added: admin-specific hooks, and frontend-facing site hooks.
Added: /
Added: require_once plugin_dir_path( FILE ) . 'includes/class-plugin-name.php';
Added:
Added: /
Added: Begins execution of the plugin.
Added:
Added: Since everything within the plugin is registered via hooks,
Added: then kicking off the plugin from this point in the file does
Added: not affect the page life cycle.
Added:
Added: @since 1.0.0
Added: /
Added: $router_class_name = apply_filters( 'plugin_name_router_class_name', '\Plugin_Name\Core\Router' );
Added: $routes = apply_filters( 'plugin_name_routes_file', plugin_dir_path( FILE ) . 'routes.php' );
Added: $GLOBALS['plugin_name'] = new Plugin_Name( $router_class_name, $routes );
Added:
Added: register_activation_hook( FILE, array( new Plugin_Name\App\Activator(), 'activate' ) );
Added: register_deactivation_hook( FILE, array( new Plugin_Name\App\Deactivator(), 'deactivate' ) );
Added:
Added: <?php
Added: /
Added: Contains the information about minimum requirements of the plugin.
Added:
Added: @package Requirements
Added: /
Added:
Added: return [
Added:
Added: 'min_php_version' => '5.6', // Minimum PHP Version.
Added:
Added: 'min_wp_version' => '4.8', // Minimum WordPress Version.
Added:
Added: 'is_multisite_compatible' => false, // True if our plugin is Multisite Compatible.
Added:
Added: 'required_plugins' => [ // Plugins on which our plugin is dependent on.
Added:
Added: // Example Config
Added: // 'Hello Dolly' => [
Added: // 'plugin_slug' => 'hello-dolly/hello.php',
Added: // 'min_plugin_version' => '1.5',
Added: // ],
Added:
Added: ],
Added:
Added: ];
Model Suggestions:
lic
;
want
Please review these suggestions and make appropriate changes if necessary.
Code Review Analysis:
Diff Analysis: Removed: Removed: <?php if ( ! is_php_version_dependency_met() ) : ?> Removed:
requirements.php
.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $min_wp_version
Added:
Added: private string $min_wp_version = '4.8'
Added:
Added: Holds minimum wp version for plugin if not defined in requirements.php
.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $is_multisite_compatible
Added:
Added: private boolean $is_multisite_compatible = false
Added:
Added: Holds the information whether plugin is compatible with Multisite or not.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $required_plugins
Added:
Added: private array $required_plugins = array()
Added:
Added: Holds list of required plugins to be installed and active for our plugin to work
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $errors
Added:
Added: private array $errors = array()
Added:
Added: Holds Error messages if dependencies are not met
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: Methods
Added: -------
Added:
Added:
Added: ### construct
Added:
Added: mixed Plugin_Name\Includes\Requirements_Checker::construct(array $requirements_data)
Added:
Added: Constructor
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added: #### Arguments
Added: $requirements_data array - <p>Requirements Data mentioned in <code>requirements.php</code>.</p>
Added:
Added:
Added:
Added: ### is_php_version_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_php_version_dependency_met()
Added:
Added: Checks if Installed PHP Version is higher than required PHP Version
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_wp_version_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_wp_version_dependency_met()
Added:
Added: Checks if Installed WP Version is higher than required WP Version
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_wp_multisite_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_wp_multisite_dependency_met()
Added:
Added: Checks if Multisite Dependencies are met
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_plugin_active
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_plugin_active(string $plugin_name, string $plugin_slug)
Added:
Added: Checks whether plugin is active or not
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_name string - <p>Name of the plugin.</p>
Added: $plugin_slug string - <p>Slug of the plugin.</p>
Added:
Added:
Added:
Added: ### get_plugin_version
Added:
Added: string Plugin_Name\Includes\Requirements_Checker::get_plugin_version(string $plugin_slug)
Added:
Added: Returns the plugin version of passed plugin
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_slug string - <p>Plugin Slug of whose version needs to be retrieved.</p>
Added:
Added:
Added:
Added: ### is_required_plugin_version_active
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_required_plugin_version_active(string $plugin_name, string $plugin_slug, string $min_plugin_version)
Added:
Added: Checks whether required version of plugin is active
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_name string - <p>Plugin Name.</p>
Added: $plugin_slug string - <p>Plugin Slug.</p>
Added: $min_plugin_version string - <p>Minimum version required of the plugin.</p>
Added:
Added:
Added:
Added: ### are_required_plugins_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::are_required_plugins_dependency_met()
Added:
Added: Checks whether all required plugins are installed & active with proper versions.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### add_error_notice
Added:
Added: void Plugin_Name\Includes\Requirements_Checker::add_error_notice(string $error_message, string $supportive_information)
Added:
Added: Adds Error message in $errors variable
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $error_message string - <p>Error Message.</p>
Added: $supportive_information string - <p>Supportive Information to be displayed along with Error Message in brackets.</p>
Added:
Added:
Added:
Added: ### requirements_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::requirements_met()
Added:
Added: Checks if all plugins requirements are met or not
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added:
Added:
Added: ### show_requirements_errors
Added:
Added: mixed Plugin_Name\Includes\Requirements_Checker::show_requirements_errors()
Added:
Added: Prints an error that the system requirements weren't met.
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added:
Added: Plugin_Name\Core
Added: View
Added: Plugin_Name\Core\Registry
Added: Controller
Added: Model
Added: Route_Type
Added: Controller
Added: Model
Added: Router
Removed: Plugin_Name\App\Controllers
Removed: Plugin_Name\App\Controllers\Admin
Removed: Admin_Settings
Removed: Base_Controller
Removed: Plugin_Name\App\Controllers\Frontend
Removed: Base_Controller
Added: Deactivator
Removed: Activator
Added: Activator
Added: Plugin_Name\App\Controllers
Added: Plugin_Name\App\Controllers\Frontend
Added: Base_Controller
Added: Plugin_Name\App\Controllers\Admin
Added: Base_Controller
Added: Admin_Settings
Removed: Settings
Added: Settings
Removed: Admin_Settings
Removed: Deactivator
Removed: Plugin_Name\Core
Removed: Plugin_Name\Core\Registry
Removed: Controller
Removed: Model
Removed: Router
Removed: View
Removed: Controller
Removed: Model
Removed: Route_Type
Added: Admin_Settings
Added: * Requirements_Checker
Added: <?php
Added: namespace Plugin_Name\Includes;
Added:
Added: if ( ! class_exists( 'Requirements_Checker' ) ) {
Added: /
Added: Checks whether plugin's requirements are being met or not
Added:
Added: @since 1.0.0
Added: @package Plugin_Name
Added: @subpackage Plugin_Name/Includes
Added: /
Added: class Requirements_Checker {
Added:
Added: /
Added: Holds minimum php version for plugin if not defined in requirements.php
.
Added:
Added: @var string
Added: @since 1.0.0
Added: */
Added: private $min_php_version = '5.6';
Added:
Added: /
Added: Holds minimum wp version for plugin if not defined in requirements.php
.
Added:
Added: @var string
Added: @since 1.0.0
Added: */
Added: private $min_wp_version = '4.8';
Added:
Added: /*
Added: Holds the information whether plugin is compatible with Multisite or not.
Added:
Added: @var boolean
Added: @since 1.0.0
Added: /
Added: private $is_multisite_compatible = false;
Added:
Added: /
Added: Holds list of required plugins to be installed and active for our plugin to work
Added:
Added: @var array
Added: @since 1.0.0
Added: */
Added: private $required_plugins = [];
Added:
Added: /*
Added: Holds Error messages if dependencies are not met
Added:
Added: @var array
Added: @since 1.0.0
Added: /
Added: private $errors = [];
Added:
Added: /*
Added: Constructor
Added:
Added: @param array $requirements_data Requirements Data mentioned in requirements.php
.
Added: @since 1.0.0
Added: /
Added: public function construct( $requirements_data ) {
Added: if ( isset( $requirements_data['min_php_version'] ) ) {
Added: $this->min_php_version = $requirements_data['min_php_version'];
Added: }
Added:
Added: if ( isset( $requirements_data['min_wp_version'] ) ) {
Added: $this->min_wp_version = $requirements_data['min_wp_version'];
Added: }
Added:
Added: if ( isset( $requirements_data['is_multisite_compatible'] ) ) {
Added: $this->is_multisite_compatible = $requirements_data['is_multisite_compatible'];
Added: }
Added:
Added: if ( isset( $requirements_data['required_plugins'] ) ) {
Added: $this->required_plugins = $requirements_data['required_plugins'];
Added: }
Added: }
Added:
Added: /
Added: Checks if Installed PHP Version is higher than required PHP Version
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_php_version_dependency_met() {
Added: $is_required_php_version_installed = version_compare( PHP_VERSION, $this->min_php_version, '>=' );
Added:
Added: if ( 1 == $is_required_php_version_installed ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: 'PHP ' . $this->min_php_version . '+ is required',
Added: 'You\'re running version ' . PHP_VERSION
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /*
Added: Checks if Installed WP Version is higher than required WP Version
Added:
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function is_wp_version_dependency_met() {
Added: global $wp_version;
Added: $is_required_wp_version_installed = version_compare( $wp_version, $this->min_wp_version, '>=' );
Added:
Added: if ( 1 == $is_required_wp_version_installed ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: 'WordPress ' . $this->min_wp_version . '+ is required',
Added: 'You\'re running version ' . $wp_version
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /
Added: Checks if Multisite Dependencies are met
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_wp_multisite_dependency_met() {
Added: $is_wp_multisite_dependency_met = is_multisite() && ( false === $this->is_multisite_compatible ) ? false : true;
Added:
Added: if ( false == $is_wp_multisite_dependency_met ) {
Added: $this->add_error_notice(
Added: 'Your site is set up as a Network (Multisite)',
Added: 'This plugin is not compatible with multisite environment'
Added: );
Added: }
Added:
Added: return $is_wp_multisite_dependency_met;
Added: }
Added:
Added: /
Added: Checks whether plugin is active or not
Added:
Added: @param string $plugin_name Name of the plugin.
Added: @param string $plugin_slug Slug of the plugin.
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_plugin_active( $plugin_name, $plugin_slug ) {
Added: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
Added:
Added: if ( is_plugin_active( $plugin_slug ) ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: $plugin_name . ' is a required plugin.',
Added: $plugin_name . ' needs to be installed & activated.'
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /
Added: Returns the plugin version of passed plugin
Added:
Added: @param string $plugin_slug Plugin Slug of whose version needs to be retrieved.
Added: @return string Plugin Version
Added: @since 1.0.0
Added: /
Added: private function get_plugin_version( $plugin_slug ) {
Added: $plugin_file_path = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug;
Added:
Added: if ( ! file_exists( $plugin_file_path ) ) {
Added: $plugin_file_path = WPMU_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug;
Added: }
Added:
Added: $plugin_data = get_plugin_data( $plugin_file_path, false, false );
Added:
Added: if ( empty( $plugin_data['Version'] ) ) {
Added: return '0.0';
Added: }
Added:
Added: return $plugin_data['Version'];
Added: }
Added:
Added: /
Added: Checks whether required version of plugin is active
Added:
Added: @param string $plugin_name Plugin Name.
Added: @param string $plugin_slug Plugin Slug.
Added: @param string $min_plugin_version Minimum version required of the plugin.
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function is_required_plugin_version_active( $plugin_name, $plugin_slug, $min_plugin_version ) {
Added: $installed_plugin_version = $this->get_plugin_version( $plugin_slug );
Added: $is_required_plugin_version_active = version_compare( $installed_plugin_version, $min_plugin_version, '>=' );
Added:
Added: if ( 1 == $is_required_plugin_version_active ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: "{$plugin_name} {$min_plugin_version}+ is required.",
Added: "{$plugin_name} {$installed_plugin_version} is installed."
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /*
Added: Checks whether all required plugins are installed & active with proper versions.
Added:
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function are_required_plugins_dependency_met() {
Added: $plugin_dependency_met = true;
Added:
Added: if ( empty( $this->required_plugins ) ) {
Added: return true;
Added: }
Added:
Added: $installed_plugins = array_filter(
Added: $this->required_plugins,
Added: function( $required_plugin_data, $required_plugin_name ) {
Added: return $this->is_plugin_active( $required_plugin_name, $required_plugin_data['plugin_slug'] );
Added: },
Added: ARRAY_FILTER_USE_BOTH
Added: );
Added:
Added: // If All Plugins are not installed, set plugin_dependency_met flag as false.
Added: if ( count( $installed_plugins ) !== count( $this->required_plugins ) ) {
Added: $plugin_dependency_met = false;
Added: }
Added:
Added: $plugins_installed_with_required_version = array_filter(
Added: $installed_plugins,
Added: function( $required_plugin_data, $required_plugin_name ) {
Added: return $this->is_required_plugin_version_active( $required_plugin_name, $required_plugin_data['plugin_slug'], $required_plugin_data['min_plugin_version'] );
Added: },
Added: ARRAY_FILTER_USE_BOTH
Added: );
Added:
Added: // All Plugins did not met minimum version dependency.
Added: if ( count( $plugins_installed_with_required_version ) !== count( $this->required_plugins ) ) {
Added: $plugin_dependency_met = false;
Added: }
Added:
Added: return $plugin_dependency_met;
Added: }
Added:
Added:
Added: /
Added: Adds Error message in $errors variable
Added:
Added: @param string $error_message Error Message.
Added: @param string $supportive_information Supportive Information to be displayed along with Error Message in brackets.
Added: @return void
Added: @since 1.0.0
Added: */
Added: private function add_error_notice( $error_message, $supportive_information ) {
Added: $this->errors[] = (object) [
Added: 'error_message' => $error_message,
Added: 'supportive_information' => $supportive_information,
Added: ];
Added: }
Added:
Added: /
Added: Checks if all plugins requirements are met or not
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: public function requirements_met() {
Added: $requirements_met = true;
Added:
Added: if ( ! $this->is_php_version_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->is_wp_version_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->is_wp_multisite_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->are_required_plugins_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: return $requirements_met;
Added: }
Added:
Added: /
Added: Prints an error that the system requirements weren't met.
Added:
Added: @since 1.0.0
Added: /
Added: public function show_requirements_errors() {
Added: $errors = $this->errors;
Added: require_once( dirname( dirname( FILE ) ) . '/app/templates/admin/errors/requirements-error.php' );
Added: }
Added: }
Added: }
Removed: define( 'PLUGIN_NAME_REQUIRED_PHP_VERSION', '7.1' ); // because of get_called_class().
Removed: define( 'PLUGIN_NAME_REQUIRED_WP_VERSION', '5.0' );
Removed: define( 'PLUGIN_NAME_SUPPORTS_WP_MULTISITE', false ); // because plugin is not compatible with WordPress multisite.
Removed:
Removed: /
Removed: Checks if the system requirements are met
Removed:
Removed: @return boolean True if system requirements are met, false if not
Removed: @since 1.0.0
Removed: */
Removed: function plugin_name_requirements_met() {
Removed: if ( ! is_php_version_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: if ( ! is_wp_version_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: if ( ! is_wp_multisite_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: return true;
Removed: }
Removed:
Removed: /
Removed: Checks if Installed PHP Version is higher than required PHP Version
Removed:
Removed: @return boolean
Removed: @since 1.0.0
Removed: */
Removed: function is_php_version_dependency_met() {
Removed: return version_compare( PHP_VERSION, PLUGIN_NAME_REQUIRED_PHP_VERSION, '>=' );
Removed: }
Removed:
Removed: /
Removed: Checks if Installed WP Version is higher than required WP Version
Removed:
Removed: @return boolean
Removed: @since 1.0.0
Removed: /
Removed: function is_wp_version_dependency_met() {
Removed: global $wp_version;
Removed: return version_compare( $wp_version, PLUGIN_NAME_REQUIRED_WP_VERSION, '>=' );
Removed: }
Removed:
Removed: Checks if Multisite Dependencies are met
Added: Creates/Maintains the object of Requirements Checker Class
Removed: @return boolean
Added: * @return \Plugin_Name\Includes\Requirements_Checker
Removed: function is_wp_multisite_dependency_met() {
Removed: return is_multisite() && ( false === PLUGIN_NAME_SUPPORTS_WP_MULTISITE ) ? false : true;
Removed: }
Removed:
Removed: /
Removed: Prints an error that the system requirements weren't met.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function plugin_name_show_requirements_error() {
Removed: global $wp_version;
Removed: require_once( dirname( FILE ) . '/app/templates/admin/errors/requirements-error.php' );
Removed: }
Added: function plugin_requirements_checker() {
Added: static $requirements_checker = null;
Removed: /
Removed: The code that runs during plugin activation.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function activate_plugin_name() {
Removed: ( new Plugin_Name\App\Activator() )->activate();
Removed: }
Added: if ( null === $requirements_checker ) {
Added: require_once plugin_dir_path( FILE ) . 'includes/class-requirements-checker.php';
Added: $requirements_conf = apply_filters( 'plugin_name_minimum_requirements', include_once( plugin_dir_path( FILE ) . 'requirements-config.php' ) );
Added: $requirements_checker = new Plugin_Name\Includes\Requirements_Checker( $requirements_conf );
Added: }
Removed: /
Removed: The code that runs during plugin deactivation.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function deactivate_plugin_name() {
Removed: ( new Plugin_Name\App\Deactivator() )->deactivate();
Added: return $requirements_checker;
Removed: /
Removed: Check requirements and load main class
Removed: The main program needs to be in a separate file that only gets loaded if the plugin requirements are met.
Removed: Otherwise older PHP installations could crash when trying to parse it.
Removed: /
Removed: if ( plugin_name_requirements_met() ) {
Removed:
Removed: /*
Removed: The core plugin class that is used to define internationalization,
Removed: admin-specific hooks, and frontend-facing site hooks.
Removed: /
Removed: require_once plugin_dir_path( FILE ) . 'includes/class-plugin-name.php';
Removed:
Removed: /
Removed: Begins execution of the plugin.
Removed:
Removed: Since everything within the plugin is registered via hooks,
Removed: then kicking off the plugin from this point in the file does
Removed: not affect the page life cycle.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: $router_class_name = apply_filters( 'plugin_name_router_class_name', '\Plugin_Name\Core\Router' );
Removed: $routes = apply_filters( 'plugin_name_routes_file', plugin_dir_path( FILE ) . 'routes.php' );
Removed: $GLOBALS['plugin_name'] = new Plugin_Name( $router_class_name, $routes );
Removed:
Removed: register_activation_hook( FILE, 'activate_plugin_name' );
Removed: register_deactivation_hook( FILE, 'deactivate_plugin_name' );
Removed: } else {
Removed: add_action( 'admin_notices', 'plugin_name_show_requirements_error' );
Added: // If Plugins Requirements are not met.
Added: if ( ! plugin_requirements_checker()->requirements_met() ) {
Added: add_action( 'admin_notices', array( plugin_requirements_checker(), 'show_requirements_errors' ) );
Added:
Added: return;
Added:
Added: /*
Added: The core plugin class that is used to define internationalization,
Added: admin-specific hooks, and frontend-facing site hooks.
Added: /
Added: require_once plugin_dir_path( FILE ) . 'includes/class-plugin-name.php';
Added:
Added: /
Added: Begins execution of the plugin.
Added:
Added: Since everything within the plugin is registered via hooks,
Added: then kicking off the plugin from this point in the file does
Added: not affect the page life cycle.
Added:
Added: @since 1.0.0
Added: /
Added: $router_class_name = apply_filters( 'plugin_name_router_class_name', '\Plugin_Name\Core\Router' );
Added: $routes = apply_filters( 'plugin_name_routes_file', plugin_dir_path( FILE ) . 'routes.php' );
Added: $GLOBALS['plugin_name'] = new Plugin_Name( $router_class_name, $routes );
Added:
Added: register_activation_hook( FILE, array( new Plugin_Name\App\Activator(), 'activate' ) );
Added: register_deactivation_hook( FILE, array( new Plugin_Name\App\Deactivator(), 'deactivate' ) );
Added:
Added: <?php
Added: /
Added: Contains the information about minimum requirements of the plugin.
Added:
Added: @package Requirements
Added: /
Added:
Added: return [
Added:
Added: 'min_php_version' => '5.6', // Minimum PHP Version.
Added:
Added: 'min_wp_version' => '4.8', // Minimum WordPress Version.
Added:
Added: 'is_multisite_compatible' => false, // True if our plugin is Multisite Compatible.
Added:
Added: 'required_plugins' => [ // Plugins on which our plugin is dependent on.
Added:
Added: // Example Config
Added: // 'Hello Dolly' => [
Added: // 'plugin_slug' => 'hello-dolly/hello.php',
Added: // 'min_plugin_version' => '1.5',
Added: // ],
Added:
Added: ],
Added:
Added: ];
Model Suggestions:
Please review these suggestions and make appropriate changes if necessary.
Code Review Analysis:
Diff Analysis: Removed: Removed: <?php if ( ! is_php_version_dependency_met() ) : ?> Removed:
requirements.php
.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $min_wp_version
Added:
Added: private string $min_wp_version = '4.8'
Added:
Added: Holds minimum wp version for plugin if not defined in requirements.php
.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $is_multisite_compatible
Added:
Added: private boolean $is_multisite_compatible = false
Added:
Added: Holds the information whether plugin is compatible with Multisite or not.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $required_plugins
Added:
Added: private array $required_plugins = array()
Added:
Added: Holds list of required plugins to be installed and active for our plugin to work
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: ### $errors
Added:
Added: private array $errors = array()
Added:
Added: Holds Error messages if dependencies are not met
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: Methods
Added: -------
Added:
Added:
Added: ### construct
Added:
Added: mixed Plugin_Name\Includes\Requirements_Checker::construct(array $requirements_data)
Added:
Added: Constructor
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added: #### Arguments
Added: $requirements_data array - <p>Requirements Data mentioned in <code>requirements.php</code>.</p>
Added:
Added:
Added:
Added: ### is_php_version_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_php_version_dependency_met()
Added:
Added: Checks if Installed PHP Version is higher than required PHP Version
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_wp_version_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_wp_version_dependency_met()
Added:
Added: Checks if Installed WP Version is higher than required WP Version
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_wp_multisite_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_wp_multisite_dependency_met()
Added:
Added: Checks if Multisite Dependencies are met
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### is_plugin_active
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_plugin_active(string $plugin_name, string $plugin_slug)
Added:
Added: Checks whether plugin is active or not
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_name string - <p>Name of the plugin.</p>
Added: $plugin_slug string - <p>Slug of the plugin.</p>
Added:
Added:
Added:
Added: ### get_plugin_version
Added:
Added: string Plugin_Name\Includes\Requirements_Checker::get_plugin_version(string $plugin_slug)
Added:
Added: Returns the plugin version of passed plugin
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_slug string - <p>Plugin Slug of whose version needs to be retrieved.</p>
Added:
Added:
Added:
Added: ### is_required_plugin_version_active
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::is_required_plugin_version_active(string $plugin_name, string $plugin_slug, string $min_plugin_version)
Added:
Added: Checks whether required version of plugin is active
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $plugin_name string - <p>Plugin Name.</p>
Added: $plugin_slug string - <p>Plugin Slug.</p>
Added: $min_plugin_version string - <p>Minimum version required of the plugin.</p>
Added:
Added:
Added:
Added: ### are_required_plugins_dependency_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::are_required_plugins_dependency_met()
Added:
Added: Checks whether all required plugins are installed & active with proper versions.
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added:
Added:
Added: ### add_error_notice
Added:
Added: void Plugin_Name\Includes\Requirements_Checker::add_error_notice(string $error_message, string $supportive_information)
Added:
Added: Adds Error message in $errors variable
Added:
Added:
Added:
Added: Visibility: private
Added:
Added:
Added: #### Arguments
Added: $error_message string - <p>Error Message.</p>
Added: $supportive_information string - <p>Supportive Information to be displayed along with Error Message in brackets.</p>
Added:
Added:
Added:
Added: ### requirements_met
Added:
Added: boolean Plugin_Name\Includes\Requirements_Checker::requirements_met()
Added:
Added: Checks if all plugins requirements are met or not
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added:
Added:
Added: ### show_requirements_errors
Added:
Added: mixed Plugin_Name\Includes\Requirements_Checker::show_requirements_errors()
Added:
Added: Prints an error that the system requirements weren't met.
Added:
Added:
Added:
Added: Visibility: public
Added:
Added:
Added:
Added: Plugin_Name\Core
Added: View
Added: Plugin_Name\Core\Registry
Added: Controller
Added: Model
Added: Route_Type
Added: Controller
Added: Model
Added: Router
Removed: Plugin_Name\App\Controllers
Removed: Plugin_Name\App\Controllers\Admin
Removed: Admin_Settings
Removed: Base_Controller
Removed: Plugin_Name\App\Controllers\Frontend
Removed: Base_Controller
Added: Deactivator
Removed: Activator
Added: Activator
Added: Plugin_Name\App\Controllers
Added: Plugin_Name\App\Controllers\Frontend
Added: Base_Controller
Added: Plugin_Name\App\Controllers\Admin
Added: Base_Controller
Added: Admin_Settings
Removed: Settings
Added: Settings
Removed: Admin_Settings
Removed: Deactivator
Removed: Plugin_Name\Core
Removed: Plugin_Name\Core\Registry
Removed: Controller
Removed: Model
Removed: Router
Removed: View
Removed: Controller
Removed: Model
Removed: Route_Type
Added: Admin_Settings
Added: * Requirements_Checker
Added: <?php
Added: namespace Plugin_Name\Includes;
Added:
Added: if ( ! class_exists( 'Requirements_Checker' ) ) {
Added: /
Added: Checks whether plugin's requirements are being met or not
Added:
Added: @since 1.0.0
Added: @package Plugin_Name
Added: @subpackage Plugin_Name/Includes
Added: /
Added: class Requirements_Checker {
Added:
Added: /
Added: Holds minimum php version for plugin if not defined in requirements.php
.
Added:
Added: @var string
Added: @since 1.0.0
Added: */
Added: private $min_php_version = '5.6';
Added:
Added: /
Added: Holds minimum wp version for plugin if not defined in requirements.php
.
Added:
Added: @var string
Added: @since 1.0.0
Added: */
Added: private $min_wp_version = '4.8';
Added:
Added: /*
Added: Holds the information whether plugin is compatible with Multisite or not.
Added:
Added: @var boolean
Added: @since 1.0.0
Added: /
Added: private $is_multisite_compatible = false;
Added:
Added: /
Added: Holds list of required plugins to be installed and active for our plugin to work
Added:
Added: @var array
Added: @since 1.0.0
Added: */
Added: private $required_plugins = [];
Added:
Added: /*
Added: Holds Error messages if dependencies are not met
Added:
Added: @var array
Added: @since 1.0.0
Added: /
Added: private $errors = [];
Added:
Added: /*
Added: Constructor
Added:
Added: @param array $requirements_data Requirements Data mentioned in requirements.php
.
Added: @since 1.0.0
Added: /
Added: public function construct( $requirements_data ) {
Added: if ( isset( $requirements_data['min_php_version'] ) ) {
Added: $this->min_php_version = $requirements_data['min_php_version'];
Added: }
Added:
Added: if ( isset( $requirements_data['min_wp_version'] ) ) {
Added: $this->min_wp_version = $requirements_data['min_wp_version'];
Added: }
Added:
Added: if ( isset( $requirements_data['is_multisite_compatible'] ) ) {
Added: $this->is_multisite_compatible = $requirements_data['is_multisite_compatible'];
Added: }
Added:
Added: if ( isset( $requirements_data['required_plugins'] ) ) {
Added: $this->required_plugins = $requirements_data['required_plugins'];
Added: }
Added: }
Added:
Added: /
Added: Checks if Installed PHP Version is higher than required PHP Version
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_php_version_dependency_met() {
Added: $is_required_php_version_installed = version_compare( PHP_VERSION, $this->min_php_version, '>=' );
Added:
Added: if ( 1 == $is_required_php_version_installed ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: 'PHP ' . $this->min_php_version . '+ is required',
Added: 'You\'re running version ' . PHP_VERSION
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /*
Added: Checks if Installed WP Version is higher than required WP Version
Added:
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function is_wp_version_dependency_met() {
Added: global $wp_version;
Added: $is_required_wp_version_installed = version_compare( $wp_version, $this->min_wp_version, '>=' );
Added:
Added: if ( 1 == $is_required_wp_version_installed ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: 'WordPress ' . $this->min_wp_version . '+ is required',
Added: 'You\'re running version ' . $wp_version
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /
Added: Checks if Multisite Dependencies are met
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_wp_multisite_dependency_met() {
Added: $is_wp_multisite_dependency_met = is_multisite() && ( false === $this->is_multisite_compatible ) ? false : true;
Added:
Added: if ( false == $is_wp_multisite_dependency_met ) {
Added: $this->add_error_notice(
Added: 'Your site is set up as a Network (Multisite)',
Added: 'This plugin is not compatible with multisite environment'
Added: );
Added: }
Added:
Added: return $is_wp_multisite_dependency_met;
Added: }
Added:
Added: /
Added: Checks whether plugin is active or not
Added:
Added: @param string $plugin_name Name of the plugin.
Added: @param string $plugin_slug Slug of the plugin.
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: private function is_plugin_active( $plugin_name, $plugin_slug ) {
Added: require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
Added:
Added: if ( is_plugin_active( $plugin_slug ) ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: $plugin_name . ' is a required plugin.',
Added: $plugin_name . ' needs to be installed & activated.'
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /
Added: Returns the plugin version of passed plugin
Added:
Added: @param string $plugin_slug Plugin Slug of whose version needs to be retrieved.
Added: @return string Plugin Version
Added: @since 1.0.0
Added: /
Added: private function get_plugin_version( $plugin_slug ) {
Added: $plugin_file_path = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug;
Added:
Added: if ( ! file_exists( $plugin_file_path ) ) {
Added: $plugin_file_path = WPMU_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug;
Added: }
Added:
Added: $plugin_data = get_plugin_data( $plugin_file_path, false, false );
Added:
Added: if ( empty( $plugin_data['Version'] ) ) {
Added: return '0.0';
Added: }
Added:
Added: return $plugin_data['Version'];
Added: }
Added:
Added: /
Added: Checks whether required version of plugin is active
Added:
Added: @param string $plugin_name Plugin Name.
Added: @param string $plugin_slug Plugin Slug.
Added: @param string $min_plugin_version Minimum version required of the plugin.
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function is_required_plugin_version_active( $plugin_name, $plugin_slug, $min_plugin_version ) {
Added: $installed_plugin_version = $this->get_plugin_version( $plugin_slug );
Added: $is_required_plugin_version_active = version_compare( $installed_plugin_version, $min_plugin_version, '>=' );
Added:
Added: if ( 1 == $is_required_plugin_version_active ) {
Added: return true;
Added: }
Added:
Added: $this->add_error_notice(
Added: "{$plugin_name} {$min_plugin_version}+ is required.",
Added: "{$plugin_name} {$installed_plugin_version} is installed."
Added: );
Added:
Added: return false;
Added: }
Added:
Added: /*
Added: Checks whether all required plugins are installed & active with proper versions.
Added:
Added: @return boolean
Added: @since 1.0.0
Added: /
Added: private function are_required_plugins_dependency_met() {
Added: $plugin_dependency_met = true;
Added:
Added: if ( empty( $this->required_plugins ) ) {
Added: return true;
Added: }
Added:
Added: $installed_plugins = array_filter(
Added: $this->required_plugins,
Added: function( $required_plugin_data, $required_plugin_name ) {
Added: return $this->is_plugin_active( $required_plugin_name, $required_plugin_data['plugin_slug'] );
Added: },
Added: ARRAY_FILTER_USE_BOTH
Added: );
Added:
Added: // If All Plugins are not installed, set plugin_dependency_met flag as false.
Added: if ( count( $installed_plugins ) !== count( $this->required_plugins ) ) {
Added: $plugin_dependency_met = false;
Added: }
Added:
Added: $plugins_installed_with_required_version = array_filter(
Added: $installed_plugins,
Added: function( $required_plugin_data, $required_plugin_name ) {
Added: return $this->is_required_plugin_version_active( $required_plugin_name, $required_plugin_data['plugin_slug'], $required_plugin_data['min_plugin_version'] );
Added: },
Added: ARRAY_FILTER_USE_BOTH
Added: );
Added:
Added: // All Plugins did not met minimum version dependency.
Added: if ( count( $plugins_installed_with_required_version ) !== count( $this->required_plugins ) ) {
Added: $plugin_dependency_met = false;
Added: }
Added:
Added: return $plugin_dependency_met;
Added: }
Added:
Added:
Added: /
Added: Adds Error message in $errors variable
Added:
Added: @param string $error_message Error Message.
Added: @param string $supportive_information Supportive Information to be displayed along with Error Message in brackets.
Added: @return void
Added: @since 1.0.0
Added: */
Added: private function add_error_notice( $error_message, $supportive_information ) {
Added: $this->errors[] = (object) [
Added: 'error_message' => $error_message,
Added: 'supportive_information' => $supportive_information,
Added: ];
Added: }
Added:
Added: /
Added: Checks if all plugins requirements are met or not
Added:
Added: @return boolean
Added: @since 1.0.0
Added: */
Added: public function requirements_met() {
Added: $requirements_met = true;
Added:
Added: if ( ! $this->is_php_version_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->is_wp_version_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->is_wp_multisite_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: if ( ! $this->are_required_plugins_dependency_met() ) {
Added: $requirements_met = false;
Added: }
Added:
Added: return $requirements_met;
Added: }
Added:
Added: /
Added: Prints an error that the system requirements weren't met.
Added:
Added: @since 1.0.0
Added: /
Added: public function show_requirements_errors() {
Added: $errors = $this->errors;
Added: require_once( dirname( dirname( FILE ) ) . '/app/templates/admin/errors/requirements-error.php' );
Added: }
Added: }
Added: }
Removed: define( 'PLUGIN_NAME_REQUIRED_PHP_VERSION', '7.1' ); // because of get_called_class().
Removed: define( 'PLUGIN_NAME_REQUIRED_WP_VERSION', '5.0' );
Removed: define( 'PLUGIN_NAME_SUPPORTS_WP_MULTISITE', false ); // because plugin is not compatible with WordPress multisite.
Removed:
Removed: /
Removed: Checks if the system requirements are met
Removed:
Removed: @return boolean True if system requirements are met, false if not
Removed: @since 1.0.0
Removed: */
Removed: function plugin_name_requirements_met() {
Removed: if ( ! is_php_version_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: if ( ! is_wp_version_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: if ( ! is_wp_multisite_dependency_met() ) {
Removed: return false;
Removed: }
Removed:
Removed: return true;
Removed: }
Removed:
Removed: /
Removed: Checks if Installed PHP Version is higher than required PHP Version
Removed:
Removed: @return boolean
Removed: @since 1.0.0
Removed: */
Removed: function is_php_version_dependency_met() {
Removed: return version_compare( PHP_VERSION, PLUGIN_NAME_REQUIRED_PHP_VERSION, '>=' );
Removed: }
Removed:
Removed: /
Removed: Checks if Installed WP Version is higher than required WP Version
Removed:
Removed: @return boolean
Removed: @since 1.0.0
Removed: /
Removed: function is_wp_version_dependency_met() {
Removed: global $wp_version;
Removed: return version_compare( $wp_version, PLUGIN_NAME_REQUIRED_WP_VERSION, '>=' );
Removed: }
Removed:
Removed: Checks if Multisite Dependencies are met
Added: Creates/Maintains the object of Requirements Checker Class
Removed: @return boolean
Added: * @return \Plugin_Name\Includes\Requirements_Checker
Removed: function is_wp_multisite_dependency_met() {
Removed: return is_multisite() && ( false === PLUGIN_NAME_SUPPORTS_WP_MULTISITE ) ? false : true;
Removed: }
Removed:
Removed: /
Removed: Prints an error that the system requirements weren't met.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function plugin_name_show_requirements_error() {
Removed: global $wp_version;
Removed: require_once( dirname( FILE ) . '/app/templates/admin/errors/requirements-error.php' );
Removed: }
Added: function plugin_requirements_checker() {
Added: static $requirements_checker = null;
Removed: /
Removed: The code that runs during plugin activation.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function activate_plugin_name() {
Removed: ( new Plugin_Name\App\Activator() )->activate();
Removed: }
Added: if ( null === $requirements_checker ) {
Added: require_once plugin_dir_path( FILE ) . 'includes/class-requirements-checker.php';
Added: $requirements_conf = apply_filters( 'plugin_name_minimum_requirements', include_once( plugin_dir_path( FILE ) . 'requirements-config.php' ) );
Added: $requirements_checker = new Plugin_Name\Includes\Requirements_Checker( $requirements_conf );
Added: }
Removed: /
Removed: The code that runs during plugin deactivation.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: function deactivate_plugin_name() {
Removed: ( new Plugin_Name\App\Deactivator() )->deactivate();
Added: return $requirements_checker;
Removed: /
Removed: Check requirements and load main class
Removed: The main program needs to be in a separate file that only gets loaded if the plugin requirements are met.
Removed: Otherwise older PHP installations could crash when trying to parse it.
Removed: /
Removed: if ( plugin_name_requirements_met() ) {
Removed:
Removed: /*
Removed: The core plugin class that is used to define internationalization,
Removed: admin-specific hooks, and frontend-facing site hooks.
Removed: /
Removed: require_once plugin_dir_path( FILE ) . 'includes/class-plugin-name.php';
Removed:
Removed: /
Removed: Begins execution of the plugin.
Removed:
Removed: Since everything within the plugin is registered via hooks,
Removed: then kicking off the plugin from this point in the file does
Removed: not affect the page life cycle.
Removed:
Removed: @since 1.0.0
Removed: /
Removed: $router_class_name = apply_filters( 'plugin_name_router_class_name', '\Plugin_Name\Core\Router' );
Removed: $routes = apply_filters( 'plugin_name_routes_file', plugin_dir_path( FILE ) . 'routes.php' );
Removed: $GLOBALS['plugin_name'] = new Plugin_Name( $router_class_name, $routes );
Removed:
Removed: register_activation_hook( FILE, 'activate_plugin_name' );
Removed: register_deactivation_hook( FILE, 'deactivate_plugin_name' );
Removed: } else {
Removed: add_action( 'admin_notices', 'plugin_name_show_requirements_error' );
Added: // If Plugins Requirements are not met.
Added: if ( ! plugin_requirements_checker()->requirements_met() ) {
Added: add_action( 'admin_notices', array( plugin_requirements_checker(), 'show_requirements_errors' ) );
Added:
Added: return;
Added:
Added: /*
Added: The core plugin class that is used to define internationalization,
Added: admin-specific hooks, and frontend-facing site hooks.
Added: /
Added: require_once plugin_dir_path( FILE ) . 'includes/class-plugin-name.php';
Added:
Added: /
Added: Begins execution of the plugin.
Added:
Added: Since everything within the plugin is registered via hooks,
Added: then kicking off the plugin from this point in the file does
Added: not affect the page life cycle.
Added:
Added: @since 1.0.0
Added: /
Added: $router_class_name = apply_filters( 'plugin_name_router_class_name', '\Plugin_Name\Core\Router' );
Added: $routes = apply_filters( 'plugin_name_routes_file', plugin_dir_path( FILE ) . 'routes.php' );
Added: $GLOBALS['plugin_name'] = new Plugin_Name( $router_class_name, $routes );
Added:
Added: register_activation_hook( FILE, array( new Plugin_Name\App\Activator(), 'activate' ) );
Added: register_deactivation_hook( FILE, array( new Plugin_Name\App\Deactivator(), 'deactivate' ) );
Added:
Added: <?php
Added: /
Added: Contains the information about minimum requirements of the plugin.
Added:
Added: @package Requirements
Added: /
Added:
Added: return [
Added:
Added: 'min_php_version' => '5.6', // Minimum PHP Version.
Added:
Added: 'min_wp_version' => '4.8', // Minimum WordPress Version.
Added:
Added: 'is_multisite_compatible' => false, // True if our plugin is Multisite Compatible.
Added:
Added: 'required_plugins' => [ // Plugins on which our plugin is dependent on.
Added:
Added: // Example Config
Added: // 'Hello Dolly' => [
Added: // 'plugin_slug' => 'hello-dolly/hello.php',
Added: // 'min_plugin_version' => '1.5',
Added: // ],
Added:
Added: ],
Added:
Added: ];
Model Suggestions:
Please review these suggestions and make appropriate changes if necessary.
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
_PluginNamePlugin<'WordPress ', WPAPI_API::Version_InfoFormat
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
<a href= \"'+ method. tostring () +"' \" . \" \" `- sg ( '' -> ) ->
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
diff --git a/plugin-name/app/templates/admin/errors/requirements-error.php b/plugin-name/app/templates/admin/errors/requirements-error.php index 1db9316..5327614 100755 --- a/plugin-name/app/templates/admin/errors/requirements-error.php +++ b/plugin-name/app/templates/admin/errors/requirements-error.php @@ -3,28 +3,12 @@
Plugin Name error: Your environment doesn't meet the system requirements listed below.
<ul class="ul-disc">
-
Requirements configuration for the plugin can now be defined in
requirements-config.php
.A new class file is created to handle the configuration defined in the
requirements-config.php
file.