diff --git a/src/Basic_Requirement_Checker.php b/src/Basic_Requirement_Checker.php
index e7505887a9b05150a937850d67bb15d750e1aab7..b54474dd860a0ddc495d6404f1f0b5f9f6960998 100644
--- a/src/Basic_Requirement_Checker.php
+++ b/src/Basic_Requirement_Checker.php
@@ -15,6 +15,8 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 
 		const PLUGIN_INFO_KEY_NICE_NAME = 'nice_name';
 		const PLUGIN_INFO_KEY_NAME = 'name';
+		
+		const REQUEST_TIMEOUT = 30;
 
 		/** @var string */
 		protected $plugin_name;
@@ -38,10 +40,10 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 		protected $notices;
 		/** @var @string */
 		private $text_domain;
+		/** @var bool */
+		private $is_required_minimum_version;
 		/** @var string */
-		private $minimum_required_plugin_version;
-		/** @var string */
-		private $force_plugin_update;
+		private $slug;
 
 		/**
 		 * @param string $plugin_file
@@ -52,12 +54,10 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 		 * @param string $minimum_required_plugin_version
 		 * @param bool $force_plugin_update
 		 */
-		public function __construct( $plugin_file, $plugin_name, $text_domain, $php_version, $wp_version, $minimum_required_plugin_version, $force_plugin_update = false ) {
+		public function __construct( $plugin_file, $plugin_name, $text_domain, $php_version, $wp_version ) {
 			$this->plugin_file = $plugin_file;
 			$this->plugin_name = $plugin_name;
 			$this->text_domain = $text_domain;
-			$this->minimum_required_plugin_version = $minimum_required_plugin_version;
-			$this->force_plugin_update = $force_plugin_update;
 
 			$this->set_min_php_require( $php_version );
 			$this->set_min_wp_require( $wp_version );
@@ -113,25 +113,16 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 		}
 		
 		/**
-		 * @param $minimum_require_plugin_version
+		 * @param bool $is_required
 		 *
 		 * @return WPDesk_Basic_Requirement_Checker
 		 */
-		public function set_minimum_require_plugin_version( $minimum_require_plugin_version ) {
-			$this->minimum_required_plugin_version = $minimum_require_plugin_version;
+		public function is_required_minimum_version( $is_required ) {
+			$this->is_required_minimum_version = $is_required;
+			
 			return $this;
 		}
 		
-		/**
-		 * @param $force_plugin_update
-		 *
-		 * @return WPDesk_Basic_Requirement_Checker
-		 */
-		public function force_plugin_update( $force_plugin_update ) {
-			$this->force_plugin_update = $force_plugin_update;
-			return $this;
-		}
-
 		/**
 		 * @param string $plugin_name Name in wp format dir/file.php
 		 * @param string $nice_plugin_name Nice plugin name for better looks in notice
@@ -228,9 +219,9 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 					$this->get_text_domain() ), esc_html( $this->plugin_name ),
 					'0x' . dechex( $this->min_openssl_version ) ) );
 			}
-			if ( false !== $this->check_minimum_required_plugin_version( $this->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->minimum_required_plugin_version ) );
+			
+			if ( true == $this->is_required_minimum_version && false !== $this->check_minimum_required_plugin_version( $this->slug ) ) {
+				$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_request( $this->slug ) ) );
 			}
 			
 			$notices = $this->append_plugin_require_notices( $notices );
@@ -308,16 +299,16 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 		}
 		
 		/**
-		 * @param $required_minimum_version
+		 * @param string $slug
 		 *
 		 * @return bool
 		 */
-		public function check_minimum_required_plugin_version( $required_minimum_version ) {
+		public function check_minimum_required_plugin_version( $slug ) {
 			if ( null === $this->get_current_plugin_version() ) {
 				return false;
 			}
 			
-			return $this->get_current_plugin_version() <> $required_minimum_version;
+			return $this->get_current_plugin_version() <> $this->get_plugin_version_request( $slug );
 		}
 		
 		/**
@@ -349,15 +340,55 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 		}
 		
 		/**
-		 * @return string
+		 * Plugin slug
+		 *
+		 * @param string $slug
+		 *
+		 * @return mixed
 		 */
-		private function notice_or_error()
-		{
-			$class = true == $this->force_plugin_update ? 'error' : 'notice notice-warning is-dismissible';
+		public function create_request( $slug ) {
+			$args = (object) array( 'slug' => $slug );
+			$request = array(
+				'action' => 'plugin_information',
+				'timeout' => self::REQUEST_TIMEOUT,
+				'request' => serialize( $args )
+			);
+			
+			$url = 'http://api.wordpress.org/plugins/info/1.0/';
+			$response = wp_remote_post( $url, array( 'body' => $request ) );
+			
+			return $response;
 			
-			return $class;
 		}
-
+		
+		/**
+		 * @param $slug
+		 *
+		 * @return bool
+		 */
+		public function get_plugin_version_request( $slug ) {
+			
+			$response = $this->create_request( $slug );
+			$plugin_info = unserialize( $response['body'] );
+			
+			if ( ! empty( $plugin_info ) ) {
+				return $plugin_info->version;
+			}
+			
+			return false;
+		}
+		
+		/**
+		 * @param $slug
+		 *
+		 * @return $this
+		 */
+		public function add_plugin_slug( $slug ) {
+			$this->slug = $slug;
+			
+			return $this;
+		}
+		
 		/**
 		 * @param array $notices
 		 *
diff --git a/src/Basic_Requirement_Checker_Factory.php b/src/Basic_Requirement_Checker_Factory.php
index e46cf86895d0a04bfb3e0fae31b37135db490393..25986dd52393c078ff71fefc42702a0231326c7e 100644
--- a/src/Basic_Requirement_Checker_Factory.php
+++ b/src/Basic_Requirement_Checker_Factory.php
@@ -19,14 +19,13 @@ class WPDesk_Basic_Requirement_Checker_Factory {
 	 *
 	 * @param string $plugin_file
 	 * @param string $plugin_name
-	 * @param string $minimum_required_plugin_version
 	 * @param string|null $text_domain Text domain to use. If null try to use library text domain.
 	 *
 	 * @return WPDesk_Requirement_Checker
 	 */
-	public function create_requirement_checker( $plugin_file, $plugin_name, $text_domain = null, $minimum_required_plugin_version ) {
+	public function create_requirement_checker( $plugin_file, $plugin_name, $text_domain = null ) {
 		return new WPDesk_Basic_Requirement_Checker( $plugin_file, $plugin_name,
-			$this->initialize_translations( $text_domain ), null, null, $minimum_required_plugin_version );
+			$this->initialize_translations( $text_domain ), null, null );
 	}
 
 	/**
@@ -45,8 +44,7 @@ class WPDesk_Basic_Requirement_Checker_Factory {
 			$plugin_name,
 			$this->initialize_translations( $text_domain ),
 			$requirements['php'],
-			$requirements['wp'],
-			$requirements['minimum_required_plugin_version']
+			$requirements['wp']
 		);
 
 		if ( isset( $requirements['plugins'] ) ) {
@@ -67,6 +65,14 @@ class WPDesk_Basic_Requirement_Checker_Factory {
 				$requirements_checker->add_php_module_require( $requirement['name'], $requirement['nice_name'] );
 			}
 		}
+		
+		if ( isset( $requirements['require_minimum_version'] ) ) {
+			foreach ( $requirements['require_minimum_version'] as $version ) {
+				$requirements_checker->is_required_minimum_version( $version['is_required'] );
+				$requirements_checker->add_plugin_slug( $version['slug'] );
+			}
+			
+		}
 
 		return $requirements_checker;
 	}
diff --git a/src/Requirement_Checker.php b/src/Requirement_Checker.php
index 8b036d9031ce013a79d33d8426bdd8ecea16600b..74f84942e21059678fb8b4239db77ec2eb37c0d5 100644
--- a/src/Requirement_Checker.php
+++ b/src/Requirement_Checker.php
@@ -34,18 +34,12 @@ interface WPDesk_Requirement_Checker
     public function set_min_openssl_require($version);
 	
 	/**
-	 * @param $minimum_require_plugin_version
+	 * @param $is_required
 	 *
 	 * @return $this
 	 */
-	public function set_minimum_require_plugin_version($minimum_require_plugin_version);
+	public function is_required_minimum_version($is_required);
 	
-	/**
-	 * @param $force_plugin_update
-	 *
-	 * @return $this
-	 */
-	public function force_plugin_update($force_plugin_update);
     /**
      * @param string $plugin_name
      * @param string $nice_plugin_name Nice plugin name for better looks in notice