Как проверить, активен ли плагин в WordPress [3 СПОСОБА]

Опубликовано: 2020-08-08

проверить, активен ли плагин в WordPress Как разработчик WordPress, одной из наиболее распространенных проверок вашего кода при разработке плагина является статус активации плагина. Есть несколько причин, по которым вам следует проверять, активен ли плагин. Чтобы упомянуть несколько, вы можете проверить, активен ли зависимый плагин или аналогичный плагин, который делает то же самое.

В любом случае вам нужно будет добавить проверку в базовый файл вашего плагина, чтобы проверить, активен ли целевой плагин. Классический пример, если вы разрабатываете плагин WooCommerce, который расширяет классы WooCommerce.

Например, когда вы разрабатываете плагин платежного шлюза WooCommerce, вам нужно проверить, активен ли WooCommerce сразу после активации вашего плагина или, что предпочтительнее, во время хука активации плагина.

Проверьте, активен ли плагин WordPress

К счастью, в ядре WordPress есть готовый к использованию метод или функция, которая проверяет, активен ли определенный плагин, и возвращает значение true или false.

is_plugin_active WordPress

Эта функция возвращает boolean - true or false , и вы можете легко включить его в свой код, особенно во время хука активации.

Если подключаемый модуль, который вы проверяете, не активен, вы можете отобразить уведомление в заголовке, чтобы пользователь мог установить подключаемый модуль.

Вы также можете применить ту же функцию, когда хотите, чтобы пользователь деактивировал другой плагин, который может конфликтовать с функциональностью вашего плагина.

Краткий обзор функции is_plugin_active()

Давайте быстро рассмотрим функцию is_plugin_active() , чтобы узнать больше о том, как эффективно использовать ее в вашем проекте.

is_plugin_active( string $plugin )

Эта функция принимает строковый параметр, представляющий путь к относительному пути плагина в каталоге плагинов.

 функция is_plugin_active($plugin) {
    return in_array( $plugin, (array) get_option('active_plugins', array() )) || is_plugin_active_for_network($plugin);
}

Например, WooCommerce — это путь woocommerce/woocommerce.php , как показано на
изображение ниже:
Путь к базовому файлу WooCommerce

Функцию is_plugin_active() можно использовать, чтобы проверить, активен ли плагин в бэкэнде, используя следующий фрагмент кода.

 <?php
/**
* Обнаружение плагина. Только для использования в админке.
*/
if ( is_plugin_active( 'каталог-плагина/файл-плагина.php' ) ) {
//плагин активирован
}

Например, если вы хотите проверить, активен ли WooCommerce, вы можете проверить это, используя следующий код:

 <?php
/**
* Проверьте, активен ли плагин WooCommerce в админке
*/
если ( is_plugin_active («woocommerce/woocommerce.php»)) {
//Плагин WooCommerce активирован
}

Базовый файл плагина и базовый каталог

Как видите, я использовал базовое имя плагина WooCommerce и папку, как я уже упоминал, и проиллюстрировано на изображении выше.
Базовое имя плагина — это имя файла для одного файла плагина, который является основным файлом, и иногда оно совпадает с каталогом/папкой, но не во всех случаях — некоторые плагины отличаются.

Проверьте, активен ли плагин в мультисайте

Для мультисайта WordPress есть функция, которая помогает разработчикам проверить, активен ли плагин в мультисайтовой сети. Функция:

is_plugin_active_for_network( string $plugin )

Эта функция работает так же, как функция is_plugin_active(string $plugin) и может применяться таким же образом, чтобы определить, активен ли плагин в мультисайтовой сети WordPress.

 <?php
функция is_plugin_active_for_network($plugin) {
    если ( ! is_multisite() ) {
        вернуть ложь;
    }
 
    $plugins = get_site_option('active_sitewide_plugins');
    если ( isset ( $ плагины [ $ плагин ] ) ) {
        вернуть истину;
    }
 
    вернуть ложь;
}

Другие способы проверить, активен ли плагин

Есть и другие способы проверить, активен ли плагин. Вы можете проверить, используя собственные функции php class_exists или function_exists. Эти методы проверяют, существует ли класс плагина или функции соответственно.

Использование function_exists() для проверки активности плагина

Если вы знаете функцию или метод плагина, вы можете проверить это с помощью метода function_exists , как показано ниже:

 <?php
если ( функция_существует ( 'функция_плагина' ) ) {
// Плагин активен
}

Использование class_exists() для проверки активности плагина

Если вы знаете основной класс плагина, вы можете проверить его с помощью метода class_exists , как показано ниже:

 <?php
если ( class_exists ( 'plugin_class' ) ) {
// Плагин активен
}

Вы можете подключить любой из этих методов, чтобы проверить, активен ли плагин в plugins_loaded , как показано в фрагменте кода ниже:

 <?php
/*
* Проверьте, активен ли плагин
*/

функция njengah_is_plugin_name_active() {
если ( class_exists ( 'Plugin_Class' ) ) {

// Он активен, так что логика здесь

}
}
add_action('plugins_loaded', 'njengah_is_plugin_name_active');

Вывод

В этом посте мы выделили различные способы проверки активности плагина, когда вы разрабатываете другой плагин или тему. Это полезные методы, которые вы можете применять ко всем своим задачам разработки WordPress.

Похожие статьи