Файловый менеджер - Редактировать - /home/harasnat/www/labour/wp-content/plugins/events-manager/classes/requirements-check.php
Назад
<?php namespace EM; /* Thanks Mark Jaquith - https://markjaquith.wordpress.com/2018/02/19/handling-old-wordpress-and-php-versions-in-your-plugin/ */ use EM_Admin_Notice; class Requirements_Check { private $title; private $php; private $wp; private $file; private $dependencies; private $version; private $installed; public function __construct( $args = [] ) { $args = array_merge( array( 'title' => 'Events Manager', 'file' => EM_DIR.'/events-manager.php', 'php' => '7.4', 'wp' => '5.3', 'version' => EM_VERSION, 'installed' => 'dbem_version', 'dependencies' => array(), ), $args ); $this->title = $args['title']; $this->php = $args['php']; $this->wp = $args['wp']; $this->file = $args['file']; $this->dependencies = $args['dependencies']; $this->version = $args['version']; $this->installed = get_option($args['installed']); } public function passes( $deactivate = true ) { $passes = $this->php_passes() && $this->wp_passes() && $this->dependencies_passes(); if ( ! $passes && $deactivate ) { add_action( 'admin_notices', array( $this, 'deactivate' ) ); } return $passes; } public function deactivate() { if ( isset( $this->file ) ) { deactivate_plugins( plugin_basename( $this->file ) ); } } private function php_passes() { if ( $this->__php_at_least( $this->php ) ) { return true; } else { add_action( 'admin_notices', array( $this, 'php_version_notice' ) ); return false; } } private static function __php_at_least( $min_version ) { return version_compare( phpversion(), $min_version, '>=' ); } public function php_version_notice() { echo '<div class="error">'; echo "<p><code>" . esc_html( $this->title ) . "</code> cannot run on PHP versions older than " . $this->php . '. Please contact your host and ask them to upgrade.</p>'; echo '</div>'; } private function wp_passes() { if ( $this->__wp_at_least( $this->wp ) ) { return true; } else { add_action( 'admin_notices', array( $this, 'wp_version_notice' ) ); return false; } } private static function __wp_at_least( $min_version ) { return version_compare( get_bloginfo( 'version' ), $min_version, '>=' ); } public function wp_version_notice() { echo '<div class="error">'; echo "<p>The “" . esc_html( $this->title ) . "” plugin cannot run on WordPress versions older than " . $this->wp . '. Please update WordPress.</p>'; echo '</div>'; } private function dependencies_passes() { foreach( $this->dependencies as $dependency ){ $check = $this->check_dependency( $dependency ); if( $check !== true ){ if( $check === 'recommended' ) { if ( version_compare( $this->version, $this->installed, '>' ) ) { // add admin notice that can be dismissed, so it's not naggy // translators: plugin names and version numbers $warning = __('%1$s recommends %2$s version %3$s or greater installed. Earlier versions may cause unexpected issues.', 'events-manager'); $warning = sprintf( esc_html($warning), '<code>' . $this->title . '</code>', '<a href="'. $dependency['url'] .'">' . $dependency['name'] . '</a>', $dependency['minimum']); $EM_Admin_Notice = new EM_Admin_Notice( $dependency['name'].'-minimum', 'warning', $warning ); \EM_Admin_Notices::add( $EM_Admin_Notice ); } } else { if( !has_action( 'admin_notices', array( $this, 'dependency_notices' ) ) ) { add_action( 'admin_notices', array( $this, 'dependency_notices' ) ); } return false; } } } return true; } private function check_dependency( $dependency ){ if( defined($dependency['version']) ){ // check version required if( version_compare( $dependency['minimum'], constant($dependency['version']), '>' ) ) { return 'minimum'; } if( !empty($dependency['recommended']) && version_compare( $dependency['recommended'], constant($dependency['version']), '>' ) ) { return 'recommended'; } } elseif( isset($dependency['required']) && $dependency['required'] ) { // not installed return 'missing'; } return true; } public function dependency_notices() { foreach( $this->dependencies as $dependency ){ $check_dependency = $this->check_dependency( $dependency ); if( $check_dependency === 'minimum' ){ // check version required if( version_compare( $dependency['minimum'], $dependency['version'], '>' ) ) { // translators: plugin names and version numbers $warning = __('%1$s requires %2$s version %3$s or greater installed.', 'events-manager'); ?> <div class="error"> <p style="font-weight:bold;"> <?php echo sprintf( esc_html($warning), '<code>' . $this->title . '</code>', '<a href="'. $dependency['url'] .'">' . $dependency['name'] . '</a>', $dependency['minimum']); ?> </p> </div> <?php } } elseif ( $check_dependency === 'missing' ) { // translators: plugin names $warning = esc_html__('%1$s requires %2$s to be installed and active.', 'em-wc'); ?> <div class="error"><p><strong><?php echo sprintf($warning, '<code>' . $this->title . '</code>', '<a href="'. $dependency['url'] .'">' . $dependency['name'] . '</a>'); ?></p></strong></div> <?php } } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка