И что именно непонятно?
/**
* Check plugin requirements. If not met, show message and deactivate plugin.
*/
public function check_requirements() {
if ( ! $this->requirements_met() ) {
add_action( 'admin_notices', [ $this, 'show_plugin_not_found_notice' ] );
if ( is_plugin_active( plugin_basename( WOOF_BY_CATEGORY_FILE ) ) ) {
deactivate_plugins( plugin_basename( WOOF_BY_CATEGORY_FILE ) );
// phpcs:disable WordPress.Security.NonceVerification.Recommended
if ( isset( $_GET['activate'] ) ) {
unset( $_GET['activate'] );
}
// phpcs:enable WordPress.Security.NonceVerification.Recommended
add_action( 'admin_notices', [ $this, 'show_deactivate_notice' ] );
}
}
}
1. Проверить, что нужный плагин активирован.
2. Если нет, то деактивировать свой.
И что именно непонятно?
Почти всё. Понятны только add_action.
Там замудрено.
Вначале проверяется requirements_met(), в которой $this->required_plugins
.
Зачем такие путешествия в моём простом случае? Нет, я не в претензиях, просто не понимаю.
Но и дальше — если этот плагин а не родительский активен — деактивируем его же???
if ( is_plugin_active( plugin_basename( WOOF_BY_CATEGORY_FILE ) ) ) {
deactivate_plugins( plugin_basename( WOOF_BY_CATEGORY_FILE ) );
А это
if ( isset( $_GET['activate'] ) ) {
unset( $_GET['activate'] );
}
? вообще не понятно ни как так можно ни зачем и для чего.
1. Проверить, что нужный плагин активирован
С этим проблем нет.
2. Если нет, то деактивировать свой.
Вообще-то его нужно не активировать, а потом деактивировать, а сразу не дать активироваться.
Да, в данном случае ничего страшного не случится, если проделать и такой финт. Но в целом мне кажется это как-то неправильно. Наверняка в других случаях может вызвать ошибку.
Зачем такие путешествия в моём простом случае? Нет, я не в претензиях, просто не понимаю.
Вы попросили совет, я вспомнил, что видел решение в одном из используемых плагинов и привел Вам для примера. Вы можете сделать по аналогии, можете написать что-то своё, а можете поискать или подождать ещё ответов. Интернет обширен)
Но и дальше — если этот плагин а не родительсякий активен — деактивируем его же???
Если родительский плагин не активен, код проверяет активен ли Ваш и если активен, то выключает его.
вообще не понятно ни как так можно ни зачем и для чего.
Можете попробовать связаться с автором плагина и уточнить у него, мне это, увы, не известно.
Вообще-то его нужно не активировать, а потом деактивиорвать, а сразу не дать активироваться.
Вы вольны делать как пожелаете нужным. Я Вам просто бесплатно подкинул идею как это можно реализовать, дальше уже дело за Вами. Успехов!
Если родительский плагин не активен,
Неа. Он проверяет не родителя, а обязательные плагины — $this->required_plugins
— foreach
.
Можете попробовать связаться с автором плагина и уточнить у него, мне это, увы, не известно.
Вот видите, и Вы не понимаете.
Я Вам просто бесплатно подкинул идею как это можно реализовать
Я ценю всё что тут рассказано всеми. Правда.
Но пока мне ничего не помогло.