Поддержка Плагины Не активировать плагин

  • Как не дать активироваться своему плагину, если не активен другой?

    Гугляться только вывод сообщений типа

    
    if (! is_plugin_active( 'plugin-directory/plugin-file.php' ) ) {
    	echo 'Плагин не активирован'
    }

    С проверкой понятно, а как запретить активацию своего не могу найти.
    Думаю, что надо как-то с init решать но никак не соображу как.

    Помогите разобраться.

    PS. Называл топик «Не активировать плагин если не активен другой», Но ошибка — «Заданное вами название слишком длинное». Это же никак не разрешённые 80 символов.

Просмотр 15 ответов — с 1 по 15 (всего 19)
  • А почему бы и не дать активировать — только на странице настроек (или через admin notice) выводить не опции, а мессадж — «Этот плаг зависит от плагина **name** — активируйте его»

    Автор Derat

    (@derat)

    А почему бы и не дать активировать

    Он не только бесполезен без родительского, но и будет вызывать ошибку, тк задействуются его функции.
    Родительский — это https://wordpress.org/plugins/meta-box/

    только на странице настроек

    Нет в нём никаких настроек.

    Модератор Yuri

    (@yube)

    Автор Derat

    (@derat)

    is_plugin_active сойдет?

    Он-то и сойдет (он и в вопросе написан). Но только для проверки и вывода сообщения. А как не дать активироваться своему — я этого и не пойму.

    Модератор Yuri

    (@yube)

    Как-то так:

    register_activation_hook( __FILE__, function() {
    	if ( ! is_plugin_active( 'foo.php' ) ) {
    		die('Необходим плагин Foo.');
    	} 
    });
    

    Он не только бесполезен без родительского, но и будет вызывать ошибку, тк задействуются его функции.

    Проверяешь — есть ли функция/класс из основного плагина
    — есть: инклюдишь файл лоадер всего плагина;
    — нет: выбрасываешь сообщение что нужен основной плагин;
    И никаких ошибок не будет.
    Посмотри как дополнительные плагины для вуки устроены — там есть проверка и на наличие вукоммерца (класса) и на его версию. Делай грамотно.

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

    Юрий — с die — это жестко как-то. Разве имеет плагин право выкидывать из админки на белый экран смерти ради такой мелочи?
    Админ нотисы используют большинство

    Модератор Yuri

    (@yube)

    Разве имеет плагин право выкидывать из админки на белый экран смерти ради такой мелочи?

    Никто никого никуда не выкидывает.

    screenshot

    Автор Derat

    (@derat)

    Никто никого никуда не выкидывает.

    Вот я как раз сегодня проверил Ваше предложение и зашел отписать.
    Вызывать фатальную ошибку — ну это как-то неправильно всё же.

    Автор Derat

    (@derat)

    Проверяешь — есть ли функция/класс из основного плагина

    Да не важно что поверять. is_plugin_active проверяет файл родителя — ничем не хуже. С проверкой проблем нет. Мне не понятно как не дать включиться своему.

    — есть: инклюдишь файл лоадер всего плагина;

    Какой лоадер?

    Это более верный путь для пользователей, нежели просто тихая подстава с отсутствием кнопки «активировать».

    Где про такой бред я писал?

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Мне не понятно как не дать включиться своему.

    Деактивировать его обратно.

    Какой лоадер?

    php лоадер (может класс) — который при успехе подгрузит нужные файлы для работы.

    Или вы все в основном файле плагина делаете? Зачем?

    Вы смотрели как допы к вуке делают свои проверки?

    Где про такой бред я писал?

    Вот же:

    Как не дать активироваться своему плагину, если не активен другой?

    — ни слова про сообщение. Просто «не дать активироваться».

    — он подумает — «вот глючный». И удалит плагин ))

    Я вам про лучшие практики… и всё зря

    Никто никого никуда не выкидывает.

    — но не элегантно же…

    Автор Derat

    (@derat)

    Деактивировать его обратно.

    Я не понял.

    Автор Derat

    (@derat)

    Или вы все в основном файле плагина делаете? Зачем?

    В 2х. В главном регистрация кастомных типов и таксономий, в дополнительном — метакбоксы к ним. Хотя можно было и всё в одном. Зачем усложнять.

    Вы смотрели как допы к вуке делают свои проверки?

    Я смотрел в куче плагинов и для вуу и для cf7 ещё до создания топика. Но там всё намудрено. Если бы нашел понятный способ не спрашивал бы.

    Вот же:

    Я даже не представляю как из слов «не дать активироваться своему плагину» можно было сложить «тихая подстава с отсутствием кнопки «активировать».».

    ни слова про сообщение.

    А это тогда что?:

    только вывод сообщений типа

    и 2й раз

    Но только для проверки и вывода сообщения

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Я не понял.

    Код смотрели, ссылку на который я Вам дал?

    Автор Derat

    (@derat)

    Код смотрели, ссылку на который я Вам дал?

    Ну конечно. Не понял толком ни код ни как его использовать.

Просмотр 15 ответов — с 1 по 15 (всего 19)
  • Тема «Не активировать плагин» закрыта для новых ответов.