Принудительное включение плагина

Иногда может пригодится всегда держать плагин включенным и не давать возможность его отключить. Сделать это можно через MU плагины и фильтр опции 'option_'.'active_plugins'.

Для форсированной (принудительной) активации плагина, нужно создать php файл в папке Обязательных плагинов, например /wp-content/mu-plugins/force-plugin-activation.php. И добавить следующий код в этот файл:

# Принудительная Активация плагинов
add_filter( 'option_'.'active_plugins', 'force_plugin_activation', 11 );
function force_plugin_activation( $active_plugins ){

	$active_plugins[] = 'wp-kama/wp-kama.php';

	return $active_plugins;
}

В этом коде в массив нужно добавить так называемый идентификатор плагина, который состоит из папки плагина и его основного файла. Например, для woocommerce этот ID будет выглядеть так: woocommerce/woocommerce.php.

После установки этого кода, плагин будет автоматически активирован и его никак невозможно будет деактивировать.

ВАЖНО: Надо заметить, что в этом случае НЕ срабатывает стандартная процедура активации плагина, при которой плагин может устанавливать свои таблицы/опции и т.д.

Авто-активация multisite плагинов

Форсированная активация плагинов для всей сети сайтов, делается следующим кодом:

# Принудительная Активация плагинов для всей сети сайтов
add_filter( 'site_option_'.'active_sitewide_plugins', 'force_sitewide_plugins_activation', 11 );

function force_sitewide_plugins_activation( $active_plugins ){

	$active_plugins[ 'ajax-simply/ajax-simply.php' ] = time();

	return $active_plugins;
}

Имейте ввиду, что мультисайт плагины подключаются в PHP раньше обычных плагинов сразу после MU-плагинов до события muplugins_loaded. В контексте кода - это обязательные плагины.