Как в WordPress запретить деактивацию плагина?

Во время создания сайта, разработчик, для добавления того или иного функционала сайта, устанавливает один или несколько плагинов. Впредь, для обеспечения дальнейшей надежной работы интернет-ресурса желательно, чтобы эти плагины работали всегда, т.е. не были отключены. Но часто на сайтах присутствует несколько зарегистрированных пользователей, принимающих участие в работе ресурса. Например, на блоге может быть несколько редакторов, а в интернет-магазине, кроме менеджеров, могут еще трудится несколько администраторов. Случается, что кто-либо из них может случайно или намеренно отключить (деактивировать) нужный для нормальной работы всего сайта плагин.

Как запретить деактивацию плагина?

По умолчанию, для того чтобы отключить (деактивировать) плагин, необходимо в админ-панели перейти в раздел Плагины -> Установленные и в строке активного плагина нажать на ссылку Деактивировать.

Страница Плагины

Для предотвращения отключения того или иного нужного для бесперебойной работы плагина существует возможность скрыть ссылку Деактивировать. Для этого необходимо будет добавить специальный PHP-код в файл Вашей темы functions.php.

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Сразу стоит отметить, что данный метод применим только к активным на сайте плагинам.

Итак, в конец указанного файла необходимо вставить следующие строки:

function wpschool_disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {
    if ( array_key_exists( 'edit', $actions ) )
    unset( $actions['edit'] );
 
    if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
        'wp-optimize/wp-optimize.php',
        'php-code-widget/execphp.php'
    )))
    unset( $actions['deactivate'] );
    return $actions;
}
add_filter( 'plugin_action_links', 'wpschool_disable_plugin_deactivation', 10, 4 );

Этот код отключает возможность деактивации для двух плагинов: WP-Optimize и PHP Code Widget. Подтверждение этому служат строки:

'wp-optimize/wp-optimize.php',
'php-code-widget/execphp.php'

Вместо них Вы должны подставить свои значения. Для этого следует разобраться, что они означают. Итак, первая часть строки (до косой черты) указывает на каталог, созданный плагином во время его установки. Вторая часть — это название главного файла, отвечающего за работу плагина. Обычно его имя соответствует названию каталога.

Если все строки были указаны правильно, то в результате кнопка Деактивировать пропадет в перечисленных плагинах.

Страница Плагины

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.