sumitpore / mvc-plugin-boilerplate-for-wordpress

An MVC WordPress Plugin Boilerplate with clear separation of concerns. Will make your experience of creating a WordPress Plugin enjoyable!
176 stars 22 forks source link

fixes #20 - Requirements Configuration for the plugin #21

Closed sumitpore closed 5 years ago

sumitpore commented 5 years ago

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.

sumitpore commented 1 month 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

}*

              _ $pre_recomm___pre:_p,   

             :::::::: \ $runners_ $ -

0;Plugin_recommin

;.;_ink_ines-

-with0phpPluginwithin spot__ though___---/

/ php}*

             0
sumitpore commented 1 month ago

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/

sumitpore commented 1 month ago

Code Review Analysis:

Diff Analysis: Removed: Removed: <?php if ( ! is_php_version_dependency_met() ) : ?> Removed:

  • Removed: PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION ); ?>+ is required Removed: (You're running version <?php echo esc_html( PHP_VERSION ); ?>) Removed:
  • Removed: <?php endif; ?> Removed: Removed: <?php if ( ! is_wp_version_dependency_met() ) : ?> Added: <?php foreach ( $errors as $error ) : ?> Removed: WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION ); ?>+ is required Removed: (You're running version <?php echo esc_html( $wp_version ); ?>) Added: <?php echo esc_html( $error->error_message ); ?> Added: <?php echo esc_html( $error->supportive_information ); ?> Removed: <?php endif; ?> Removed: Removed: <?php if ( ! is_wp_multisite_dependency_met() ) : ?> Removed:
  • Removed: Your site is set up as a Network (Multisite) Removed: (This plugin is not compatible with multisite environment) Removed:
  • Removed: <?php endif; ?> Removed: Added: <?php endforeach; ?> Removed: ### SETTINGS_PAGE_URL Added: ### SETTINGS_PAGE_SLUG Removed: const SETTINGS_PAGE_URL = \Plugin_Name::PLUGIN_ID Added: const SETTINGS_PAGE_SLUG = \Plugin_Name::PLUGIN_ID Removed: private string $hook_suffix = '' Added: private string $hook_suffix = 'settingspage' . \Plugin_Name::PLUGIN_ID Removed: ### construct Removed: Removed: mixed Plugin_Name\Core\Controller::__construct(\Plugin_Name\Core\Model $model, mixed $view) Removed: Removed: Constructor Removed: Removed: Removed: Removed: Visibility: protected Removed: This method is defined by Plugin_Name\Core\Controller Removed: Removed: Removed: #### Arguments Removed: $model Plugin_Name\Core\Model - <p>Model object to be used with current controller object.</p> Removed: $view mixed - <p>View object to be used with current controller object. Otherwise false.</p> Removed: Removed: Removed: Added: ### construct Added: Added: mixed Plugin_Name\Core\Controller::construct(\Plugin_Name\Core\Model $model, mixed $view) Added: Added: Constructor Added: Added: Added: Added: Visibility: protected Added: This method is defined by Plugin_Name\Core\Controller Added: Added: Added: #### Arguments Added: $model Plugin_Name\Core\Model - <p>Model object to be used with current controller object.</p> Added: $view mixed - <p>View object to be used with current controller object. Otherwise false.</p> Added: Added: Added: Removed: Retusn the Option name/key saved in the database Added: Returns the Option name/key saved in the database Removed: This is an abstract class Added: Plugin_Name\Includes\Requirements_Checker Added: =============== Added: Added: Checks whether plugin's requirements are being met or not Added: Added: Added: Added: Added: Class name: Requirements_Checker Added: Namespace: Plugin_Name\Includes Added: Added: Added: Added: Added: Added: Properties Added: ---------- Added: Added: Added: ### $min_php_version Added: Added: private string $min_php_version = '5.6' Added: Added: Holds minimum php version for plugin if not defined in 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.

    sumitpore commented 1 month ago

    Code Review Analysis:

    Diff Analysis: Removed: Removed: <?php if ( ! is_php_version_dependency_met() ) : ?> Removed:

  • Removed: PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION ); ?>+ is required Removed: (You're running version <?php echo esc_html( PHP_VERSION ); ?>) Removed:
  • Removed: <?php endif; ?> Removed: Removed: <?php if ( ! is_wp_version_dependency_met() ) : ?> Added: <?php foreach ( $errors as $error ) : ?> Removed: WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION ); ?>+ is required Removed: (You're running version <?php echo esc_html( $wp_version ); ?>) Added: <?php echo esc_html( $error->error_message ); ?> Added: <?php echo esc_html( $error->supportive_information ); ?> Removed: <?php endif; ?> Removed: Removed: <?php if ( ! is_wp_multisite_dependency_met() ) : ?> Removed:
  • Removed: Your site is set up as a Network (Multisite) Removed: (This plugin is not compatible with multisite environment) Removed:
  • Removed: <?php endif; ?> Removed: Added: <?php endforeach; ?> Removed: ### SETTINGS_PAGE_URL Added: ### SETTINGS_PAGE_SLUG Removed: const SETTINGS_PAGE_URL = \Plugin_Name::PLUGIN_ID Added: const SETTINGS_PAGE_SLUG = \Plugin_Name::PLUGIN_ID Removed: private string $hook_suffix = '' Added: private string $hook_suffix = 'settingspage' . \Plugin_Name::PLUGIN_ID Removed: ### construct Removed: Removed: mixed Plugin_Name\Core\Controller::__construct(\Plugin_Name\Core\Model $model, mixed $view) Removed: Removed: Constructor Removed: Removed: Removed: Removed: Visibility: protected Removed: This method is defined by Plugin_Name\Core\Controller Removed: Removed: Removed: #### Arguments Removed: $model Plugin_Name\Core\Model - <p>Model object to be used with current controller object.</p> Removed: $view mixed - <p>View object to be used with current controller object. Otherwise false.</p> Removed: Removed: Removed: Added: ### construct Added: Added: mixed Plugin_Name\Core\Controller::construct(\Plugin_Name\Core\Model $model, mixed $view) Added: Added: Constructor Added: Added: Added: Added: Visibility: protected Added: This method is defined by Plugin_Name\Core\Controller Added: Added: Added: #### Arguments Added: $model Plugin_Name\Core\Model - <p>Model object to be used with current controller object.</p> Added: $view mixed - <p>View object to be used with current controller object. Otherwise false.</p> Added: Added: Added: Removed: Retusn the Option name/key saved in the database Added: Returns the Option name/key saved in the database Removed: This is an abstract class Added: Plugin_Name\Includes\Requirements_Checker Added: =============== Added: Added: Checks whether plugin's requirements are being met or not Added: Added: Added: Added: Added: Class name: Requirements_Checker Added: Namespace: Plugin_Name\Includes Added: Added: Added: Added: Added: Added: Properties Added: ---------- Added: Added: Added: ### $min_php_version Added: Added: private string $min_php_version = '5.6' Added: Added: Holds minimum php version for plugin if not defined in 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.

    sumitpore commented 1 month ago

    Code Review Analysis:

    Diff Analysis: Removed: Removed: <?php if ( ! is_php_version_dependency_met() ) : ?> Removed:

  • Removed: PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION ); ?>+ is required Removed: (You're running version <?php echo esc_html( PHP_VERSION ); ?>) Removed:
  • Removed: <?php endif; ?> Removed: Removed: <?php if ( ! is_wp_version_dependency_met() ) : ?> Added: <?php foreach ( $errors as $error ) : ?> Removed: WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION ); ?>+ is required Removed: (You're running version <?php echo esc_html( $wp_version ); ?>) Added: <?php echo esc_html( $error->error_message ); ?> Added: <?php echo esc_html( $error->supportive_information ); ?> Removed: <?php endif; ?> Removed: Removed: <?php if ( ! is_wp_multisite_dependency_met() ) : ?> Removed:
  • Removed: Your site is set up as a Network (Multisite) Removed: (This plugin is not compatible with multisite environment) Removed:
  • Removed: <?php endif; ?> Removed: Added: <?php endforeach; ?> Removed: ### SETTINGS_PAGE_URL Added: ### SETTINGS_PAGE_SLUG Removed: const SETTINGS_PAGE_URL = \Plugin_Name::PLUGIN_ID Added: const SETTINGS_PAGE_SLUG = \Plugin_Name::PLUGIN_ID Removed: private string $hook_suffix = '' Added: private string $hook_suffix = 'settingspage' . \Plugin_Name::PLUGIN_ID Removed: ### construct Removed: Removed: mixed Plugin_Name\Core\Controller::__construct(\Plugin_Name\Core\Model $model, mixed $view) Removed: Removed: Constructor Removed: Removed: Removed: Removed: Visibility: protected Removed: This method is defined by Plugin_Name\Core\Controller Removed: Removed: Removed: #### Arguments Removed: $model Plugin_Name\Core\Model - <p>Model object to be used with current controller object.</p> Removed: $view mixed - <p>View object to be used with current controller object. Otherwise false.</p> Removed: Removed: Removed: Added: ### construct Added: Added: mixed Plugin_Name\Core\Controller::construct(\Plugin_Name\Core\Model $model, mixed $view) Added: Added: Constructor Added: Added: Added: Added: Visibility: protected Added: This method is defined by Plugin_Name\Core\Controller Added: Added: Added: #### Arguments Added: $model Plugin_Name\Core\Model - <p>Model object to be used with current controller object.</p> Added: $view mixed - <p>View object to be used with current controller object. Otherwise false.</p> Added: Added: Added: Removed: Retusn the Option name/key saved in the database Added: Returns the Option name/key saved in the database Removed: This is an abstract class Added: Plugin_Name\Includes\Requirements_Checker Added: =============== Added: Added: Checks whether plugin's requirements are being met or not Added: Added: Added: Added: Added: Class name: Requirements_Checker Added: Namespace: Plugin_Name\Includes Added: Added: Added: Added: Added: Added: Properties Added: ---------- Added: Added: Added: ### $min_php_version Added: Added: private string $min_php_version = '5.6' Added: Added: Holds minimum php version for plugin if not defined in 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.

    sumitpore commented 1 month ago

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isis_wordpress_versions_specifier() && ( isset ('WordPress_Version') &&'version'== wp_build_user_vendor_code. VERSION &&! was_wp && is $includes?'https:/'+ WP_ARCHITECTOR_URL + '/' :'/wp-update.html' ) ) echo''. $schema_path. ' @' +'{ "version": "4.9", "is": [ 1, : 1.0, 1] } ', "wp": true, "admin": {}, "blog": false } This has been tested on WordPress 4.5.3.1. I
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTPHOST' ]) =='mongodb.org' )) : \usepackage { $ = '<$APPLICATION_ADDRESS='+ $_POST [ 200 ], $_HTTPURL = $GET [ 301 ] if hasattr ( 'https', 'host' ): else { $, $_ } set_option ( PHP, $APPEARANCES, false ); } }}
      • Afric Afric. WordPress, ( fore / $appname ); / @deprecated //* usepackage usep ; usep
    • _PluginNamePlugin<'WordPress ', WPAPI_API::Version_InfoFormat

    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( 1 ) ) && issets ('php-url') ; then .error( " Your PHP application URL is not appropriate for this plugin." + sub '/', " */).exists(); else { \?php else if (( isserviceexist( $, $_ )? $plugin_name : $title ) + ( \ $extractpath '', $exturl, $filename, " - $subname " + $url + "   " ) || ( issert ( $_ ['name_start'] ) == 0 ) % 10 ) '))
      • \ $ -> add( ' ', [ $ ] ); end
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset () ) ; then?]    += aggregates<? php string_index ( $_SORT - 1 )? > /dev/null ; = aggregated<; $_SNT_URL ; }; for ( const wapi method : aggregate where? = ; w[method]?= $ ) do ; end; if (method == $ && method == __) echo " " ; else *= /usr/lib/php1.6.4/ / ; print ( "

      <a href= \"'+ method. tostring () +"' \" . \" \" `- sg ( '' -> ) ->

    sumitpore commented 1 month ago
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) &&! $_POST [ '/wp-content/plugins/auth/php.ini' ]) ) { echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' ; } else {?>" '; If you don't want to use the plugin, you can use
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) &&! $_POST [ '/wp-content/plugins/auth/php.ini' ]) ) { echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' ; } else {?>" '; If you don't want to use the plugin, you can just
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) &&! $_POST [ '/wp-content/plugins/auth/php.ini' ]) ) { echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' ; } else {?>" '; If you don't want to use the plugin, you can simply
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) &&! $_POST [ '/wp-content/plugins/auth/php.ini' ]) ) { echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' ; } else {?>" '; If you don't want to use the plugin, you can disable
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) &&! $_POST [ '/wp-content/plugins/auth/php.ini' ]) ) { echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' ; } else {?>" '; If you don't see any errors, then you need to add
    sumitpore commented 1 month ago
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) {?> ��

      This is an error message.
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) {?> ��

      This is an error message. <img src="https://cdnjs.cloudflare.net/ajax/libs/jquery/3.4.2/css/bootstrap.min.css
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) {?> ��

      This is an error message. <img src="https://cdnjs.cloudflare.net/ajax/libs/jquery/3.4.2/css/bootstrap.min.js
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) {?> ��

      This is an error message. <img src="https://cdnjs.cloudflare.net/ajax/libs/jquery/3.4.2/css/bootstrap/5.3
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php endif;?>
    • <?php if ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) {?> ��

      This is an error message. <img src="https://cdnjs.cloudflare.net/ajax/libs/jquery/3.4.2/css/bootstrap/5.5
    sumitpore commented 1 month ago
    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements. Return only the suggestions and nothing else. Code diff to be reviewed:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php elseif ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) { echo "Invalid HTTP user account." ; } else { $this->errors = array( 'error' => 'http://www.example.com' ); } }

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > Error: Invalid HTTP User Account<link rel="stylesheet" href="https://cdnjs.cloudflare.

    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements. Return only the suggestions and nothing else. Code diff to be reviewed:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php elseif ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) { echo "Invalid HTTP user account." ; } else { $this->errors = array( 'error' => 'http://www.example.com' ); } }

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > Error: Invalid HTTP User Account<link rel="stylesheet" href="https://ajax.googleapis.

    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements. Return only the suggestions and nothing else. Code diff to be reviewed:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php elseif ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) { echo "Invalid HTTP user account." ; } else { $this->errors = array( 'error' => 'http://www.example.com' ); } }

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > Error: Invalid HTTP User Account<link rel="stylesheet" href="https://cdnjs.cloudfront.net

    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements. Return only the suggestions and nothing else. Code diff to be reviewed:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php elseif ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) { echo "Invalid HTTP user account." ; } else { $this->errors = array( 'error' => 'http://www.example.com' ); } }

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > Error: Invalid HTTP User Account<link rel="stylesheet" href="https://cdnjs.cloudflare-

    • You are a code review assistant. Review the following code changes and provide constructive feedback and suggestions for improvement. Highlight any potential issues or improvements. Return only the suggestions and nothing else. Code diff to be reviewed:

    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">

    -

    • <?php if (! is_php_version_dependency_met() ) :?>
    • PHP <?php echo esc_html( PLUGIN_NAME_REQUIRED_PHP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( PHP_VERSION );?>)
    • <?php endif;?>
    • <?php if (! is_wp_version_dependency_met() ) :?>
    • <?php foreach ( $errors as $error ) :?>
    • WordPress <?php echo esc_html( PLUGIN_NAME_REQUIRED_WP_VERSION );?>+ is required
    • (You're running version <?php echo esc_html( $wp_version );?>)
    • <?php echo esc_html( $error->error_message );?>
    • <?php echo esc_html( $error->supportive_information );?>
    • <?php elseif ( isset ( $_SERVER [ 'HTTP_USER_AGENT' ] ) ) { echo "Invalid HTTP user account." ; } else { $this->errors = array( 'error' => 'http://www.example.com' ); } }

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > Error: Invalid HTTP User Account<link rel="stylesheet" href="https://cdnjs.cloudflare to