Skip to content
Snippets Groups Projects
Commit 6528aa5f authored by vasili.guruli's avatar vasili.guruli
Browse files

Bug fixes

parent d4636427
No related branches found
No related tags found
No related merge requests found
Pipeline #9431 failed
...@@ -44,6 +44,10 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { ...@@ -44,6 +44,10 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
private $is_required_minimum_version; private $is_required_minimum_version;
/** @var string */ /** @var string */
private $slug; private $slug;
/** @var string */
private $require_plugin_version;
/** @var string */
private $require_plugin_name;
/** /**
* @param string $plugin_file * @param string $plugin_file
...@@ -218,8 +222,9 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { ...@@ -218,8 +222,9 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
'0x' . dechex( $this->min_openssl_version ) ) ); '0x' . dechex( $this->min_openssl_version ) ) );
} }
if ( true == $this->is_required_minimum_version && false !== $this->check_minimum_required_plugin_version( $this->slug ) ) { if ( true == $this->is_required_minimum_version && false !== $this->check_minimum_required_plugin_version() ) {
$notices[] = $this->prepare_notice_message( sprintf( __( 'The “%s” plugin requires at least %s version to work correctly with WooCommerce. Please update it', $this->get_text_domain() ), esc_html( $this->plugin_name ), $this->get_plugin_version( $this->slug ) ) ); $notices[] = $this->prepare_notice_message( sprintf( __( 'The “%s” plugin requires at least %s version of %s to work correctly. Please update it',
$this->get_text_domain() ), esc_html( $this->plugin_name ), $this->require_plugin_version, $this->require_plugin_name ) );
} }
$notices = $this->append_plugin_require_notices( $notices ); $notices = $this->append_plugin_require_notices( $notices );
...@@ -297,16 +302,14 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { ...@@ -297,16 +302,14 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
} }
/** /**
* @param string $slug
*
* @return bool * @return bool
*/ */
public function check_minimum_required_plugin_version( $slug ) { public function check_minimum_required_plugin_version() {
if ( null === $this->get_current_plugin_version() ) { if (null === $this->get_existing_require_plugin_version()) {
return false; return false;
} }
return $this->get_current_plugin_version() <> $this->get_plugin_version( $slug ); return $this->get_existing_require_plugin_version() <> $this->require_plugin_version;
} }
/** /**
...@@ -323,12 +326,11 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { ...@@ -323,12 +326,11 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
/** /**
* @return mixed|null * @return mixed|null
*/ */
public function get_current_plugin_version() public function get_existing_require_plugin_version() {
{
$version = null; $version = null;
if ( ! empty($this->get_existing_plugins() ) ) { if ( ! empty($this->get_existing_plugins() ) ) {
foreach ( $this->get_existing_plugins() as $plugin ) { foreach ( $this->get_existing_plugins() as $plugin ) {
if ( $plugin['Name'] === $this->plugin_name ) { if ( $plugin['TextDomain'] === $this->slug ) {
$version = $plugin['Version']; $version = $plugin['Version'];
} }
} }
...@@ -338,39 +340,25 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { ...@@ -338,39 +340,25 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
} }
/** /**
* Plugin slug * @param string $plugin_name
*
* @param string $slug .
* *
* @return mixed * @return $this
*/ */
public function get_plugin_info_from_plugins_api( $slug ) { public function add_require_plugin_name( $plugin_name ) {
$this->require_plugin_name = $plugin_name;
$transient_version = get_transient( $slug ); return $this;
$plugin_info = null;
if (false === $transient_version) {
require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
$plugin_info = plugins_api( 'plugin_information', array( 'slug' => $slug ) );
set_transient( $slug, $plugin_info, WEEK_IN_SECONDS );
}
return $transient_version;
} }
/** /**
* @param $slug * @param string $version
* *
* @return bool * @return $this
*/ */
public function get_plugin_version( $slug ) { public function add_require_plugin_version( $version ) {
$this->require_plugin_version = $version;
$plugin_info = $this->get_plugin_info_from_plugins_api( $slug ); return $this;
if ( ! empty( $plugin_info ) ) {
return $plugin_info->version;
}
return false;
} }
/** /**
...@@ -378,7 +366,7 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) { ...@@ -378,7 +366,7 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
* *
* @return $this * @return $this
*/ */
public function add_plugin_slug( $slug ) { public function add_require_plugin_slug( $slug ) {
$this->slug = $slug; $this->slug = $slug;
return $this; return $this;
......
...@@ -57,6 +57,7 @@ class WPDesk_Basic_Requirement_Checker_Factory { ...@@ -57,6 +57,7 @@ class WPDesk_Basic_Requirement_Checker_Factory {
foreach ( $requirements['repo_plugins'] as $requirement ) { foreach ( $requirements['repo_plugins'] as $requirement ) {
$requirements_checker->add_plugin_repository_require( $requirement['name'], $requirement['version'], $requirements_checker->add_plugin_repository_require( $requirement['name'], $requirement['version'],
$requirement['nice_name'] ); $requirement['nice_name'] );
$requirements_checker->add_require_plugin_name( $requirement['nice_name'] );
} }
} }
...@@ -69,7 +70,8 @@ class WPDesk_Basic_Requirement_Checker_Factory { ...@@ -69,7 +70,8 @@ class WPDesk_Basic_Requirement_Checker_Factory {
if ( isset( $requirements['require_minimum_version'] ) ) { if ( isset( $requirements['require_minimum_version'] ) ) {
foreach ( $requirements['require_minimum_version'] as $version ) { foreach ( $requirements['require_minimum_version'] as $version ) {
$requirements_checker->is_required_minimum_version( $version['is_required'] ); $requirements_checker->is_required_minimum_version( $version['is_required'] );
$requirements_checker->add_plugin_slug( $version['slug'] ); $requirements_checker->add_require_plugin_slug( $version['slug'] );
$requirements_checker->add_require_plugin_version( $version['minimum_version'] );
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment