Принудительное включение плагина
Иногда может пригодится всегда держать плагин включенным и не давать возможность его отключить. Сделать это можно через 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. В контексте кода - это обязательные плагины.