Задать вопрос
san_jorich
@san_jorich
Творческий кодер

Как в Wordpress понять установлен и активен ли нужный плагин?

Здравствуйте!
В моем коде мне нужно понять установлен и активен ли плагин Google Doc Embedder.
Ok, есть функция get_plugins(), в которой я проверяю нужный мне плагин на существование, но выходной массив не содержит путь, нужный для is_plugin_active()
Как проверить активность плагина или получить путь до нужного плагина?
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
san_jorich
@san_jorich Автор вопроса
Творческий кодер
Дмитрий Алёшин, спасибо за развернутый ответ!
1. Не вариант, т.к. путь заранее не известен
2. 3. Не совсем понял смысл..
В общем, все это натолкнуло на "велосипед"..
function es_docsControl(){
    
    $plugins = get_plugins();    $plugin = array_keys($plugins); $needle_plugin = 'Google Doc Embedder';    
    
    foreach($plugin as $path){      
      if( in_array($needle_plugin, $plugins[$path] ) ) {
        if( is_plugin_active( $path )){ return true; } else { return false; }        
      } 
    }    
  }

  add_shortcode('es_docsControl','es_docsControl');
Ответ написан
ArchitectOfRuin
@ArchitectOfRuin
WordPress-энтузиаст, маркетолог, переводчик
1. Проверка, активен ли плагин:

function check_plugin_state(){
    if (is_plugin_active('easy-digital-downloads/easy-digital-downloads.php')){
     echo 'plugin is active';
   }else{
    echo 'plugin is not active';
   }
}
add_action('admin_init', 'check_plugin_state');


2. Проверка, есть ли определенный класс:

if(class_exists('Easy_Digital_Downloads')){
   echo 'plugin is active';
}else{
   echo 'plugin is not active';
}


3. Проверка, есть ли определенная функция:

if(function_exists('EDD')){
   echo 'plugin is active';
}else{
   echo 'plugin is not active';
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы