How to stop activating a plugin and show admin notice when dependent plugins minimum version is not met

The question:

I have a plugin which is dependent on another plugin, in this case WooCommerce.

How can I stop the activation of my plugin and display an admin notice with download link of the dependent plugin, if the version of the dependent plugin is lower than a certain version?

In short, on the activation process my plugin should not be activated and display a notice with download link when any of the following is true:

  1. WooCommerce plugin is not activated (I have solution for this)
  2. The version of WooCommerce plugin is less than a certain version
    (I do not have solution for this)

Note: This question is answering my question partially, but I need to have a full solution to check the version of the dependent plugin and display admin notice accordingly.

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

You can add the following code in your plugin. I have used this in my ARB booking plugin and it worked perfectly. The full details of the code with explanation can be found here:

class FT_AdminNotice {
    protected $min_wc = '5.0.0'; //replace '5.0.0' with your dependent plugin version number
     * Register the activation hook
    public function __construct() {
        register_activation_hook( __FILE__, array( $this, 'ft_install' ) );
     * Check the dependent plugin version
    protected function ft_is_wc_compatible() {          
        return defined( 'WC_VERSION' ) && version_compare( WC_VERSION, $this->min_wc, '>=' );
     * Function to deactivate the plugin
    protected function ft_deactivate_plugin() {
        require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
        deactivate_plugins( plugin_basename( __FILE__ ) );
        if ( isset( $_GET['activate'] ) ) {
            unset( $_GET['activate'] );
     * Deactivate the plugin and display a notice if the dependent plugin is not compatible or not active.
    public function ft_install() {
        if ( ! $this->ft_is_wc_compatible() || ! class_exists( 'WooCommerce' ) ) {
            wp_die( 'Could not be activated. ' . $this->get_ft_admin_notices() );
        } else {
            //do your fancy staff here
     * Writing the admin notice
    protected function get_ft_admin_notices() {
        return sprintf(
            '%1$s requires WooCommerce version %2$s or higher installed and active. You can download WooCommerce latest version %3$s OR go back to %4$s.',
            '<strong>' . $this->plugin_name . '</strong>',
            '<strong><a href="">from here</a></strong>',
            '<strong><a href="' . esc_url( admin_url( 'plugins.php' ) ) . '">plugins page</a></strong>'


new FT_AdminNotice();

You will get admin notice like this when your plugin is activated without the Dependent plugin’s desired version:
How to stop activating a plugin and show admin notice when dependent plugins minimum version is not met

You see the admin notice has the download link of the dependent plugin and also the user can get back to the plugins page by clicking on the plugins page link.

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment