Проверяем подключение плагина
Иногда возникает необходимость проверить активен ли определенный плагин, если мы, к примеру, собираемся использовать какие-то его функции. Допустим мы пишем свой плагин для плагина WooCommerce и хотим использовать его хуки.
Вариант 1
if( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
// что-то делаем
};
Показать код
Производитель плагина WooCommerce рекомендует проверять активен ли плагин именно таким способом. Но вот здесь пишут, что такой способ не совсем корректный.
Вариант 2
if( ! function_exists( 'is_plugin_active' ) ) require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
if( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
// что-то делаем
}
Показать код
В данном примере используется встроенная в WP функция is_plugin_active()
. Особенность ее в том, что она по умолчанию доступна только из админки. Для использования из других мест ее необходимо сначала подключить, что мы и делаем в первой строке, предварительно убедившись, что функция не существует.
Вариант 3
Можно проверить, что существует нужная нам функция, создаваемая плагином, которую мы хотим использовать.
if( function_exists ( 'wc_empty_cart' ) ) {
// что-то делаем
}
Показать код
Вариант 4
Можно проверить, что существует класс, создаваемый плагином, который мы хотим использовать.
if( class_exists ( 'WC_Cart' ) ) {
// что-то делаем
}
Показать код