diff --git a/CHANGELOG.md b/CHANGELOG.md index f0cdf93136256ae5555dda08b5ac29656d79ed74..47ac4434b3c61b0785579eea3ebdb9831edb0b7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## [3.0.1] - 2019-09-18 +### Fixed +- Better new error messages display +- get_plugins function loaded from wp-admin +- Faster checks + ## [3.0.0] - 2019-09-17 ### Changed - Plugin classes moved to wp-builder diff --git a/src/Basic_Requirement_Checker.php b/src/Basic_Requirement_Checker.php index f68f7dae761b919f0abde94dffc1a8ba129118fc..c6fb7fd66e23cb67bb7af16d181f94f01ca56691 100644 --- a/src/Basic_Requirement_Checker.php +++ b/src/Basic_Requirement_Checker.php @@ -343,21 +343,19 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { $name = $plugin_info[ self::PLUGIN_INFO_KEY_NAME ]; $nice_name = $plugin_info[ self::PLUGIN_INFO_KEY_NICE_NAME ]; - if ( ! self::is_wp_plugin_installed( $name ) ) { - $install_url = $this->prepare_plugin_repository_install_url( $plugin_info ); - - return sprintf( wp_kses( __( 'The “%s” plugin requires free %s plugin. <a href="%s">Install %s →</a>', - $this->get_text_domain() ), array( 'a' => array( 'href' => array() ) ) ), - $this->plugin_name, $nice_name, esc_url( $install_url ), $nice_name ); - } - if ( ! self::is_wp_plugin_active( $name ) ) { + if ( ! self::is_wp_plugin_installed( $name ) ) { + $install_url = $this->prepare_plugin_repository_install_url( $plugin_info ); + + return $this->prepare_notice_message( sprintf( wp_kses( __( 'The “%s” plugin requires free %s plugin. <a href="%s">Install %s →</a>', + $this->get_text_domain() ), array( 'a' => array( 'href' => array() ) ) ), + $this->plugin_name, $nice_name, esc_url( $install_url ), $nice_name ) ); + } $activate_url = 'plugins.php?action=activate&plugin=' . urlencode( $plugin_info[ self::PLUGIN_INFO_KEY_NAME ] ) . '&plugin_status=all&paged=1&s&_wpnonce=' . urlencode( wp_create_nonce( 'activate-plugin_' . $name ) ); - return sprintf( wp_kses( __( 'The “%s” plugin requires activating %s plugin. <a href="%s">Activate %s →</a>', + return $this->prepare_notice_message( sprintf( wp_kses( __( 'The “%s” plugin requires activating %s plugin. <a href="%s">Activate %s →</a>', $this->get_text_domain() ), array( 'a' => array( 'href' => array() ) ) ), - $this->plugin_name, $nice_name, esc_url( admin_url( $activate_url ) ), $nice_name ); - + $this->plugin_name, $nice_name, esc_url( admin_url( $activate_url ) ), $nice_name ) ); } return null; @@ -388,6 +386,10 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { * @return bool */ public static function is_wp_plugin_installed( $plugin_file ) { + if ( ! function_exists( 'get_plugins' ) ) { + require_once ABSPATH . '/wp-admin/includes/plugin.php'; + } + return array_key_exists( $plugin_file, get_plugins() ); }