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

Хотите предотвратить случайную деактивацию плагинов WordPress?

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

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

Рассмотрим 2 способа, как безопасно и просто предотвратить отключение плагинов WordPress клиентами.

Способ 1. Плагин Disable Plugin Deactivation

Это простой и рекомендуемый для новичков метод.

Модуль удаляет ссылку Деактивировать для всех плагинов. Пользователи по-прежнему будут иметь возможность устанавливать новые плагины и всегда смогут отключить этот запрет.

Первым делом установите Disable Plugin Deactivation.

После активации в админке откройте Плагины > Plugin Deactivation Settings.

Админ-меню Плагины

На странице настроек выберите Enable напротив опции Disable Plugin Deactivation. Не забудьте сохранить изменения.

Настройка плагина Disable Plugin Deactivation

В итоге кнопка деактивации пропадет для всех активных плагинов.

Список активных плагинов WordPress

Вы также можете запретить активацию, удаление и обновление.

Не отключайте обновления плагинов на клиентских сайтах. Это поставит под угрозу безопасность сайта клиента.

Плагин не сработает, если клиент отключит эту опцию.

Способ 2. Запрет деактивации отдельных плагинов

Этот метод работает для отдельного установленного плагина или их группы. Предусматривает вставку кода в файл functions.php.

Все последующие действия предполагают редактирование functions.php — основного конфигурационного файла WordPress-темы. Если вы не знаете, как редактировать этот файл, то в этом случае поможет плагин ProFunctions.

Для начала нужно посмотреть названия главных файлов плагинов, деактивацию которых нужно отключить. Для них есть отдельный каталог

/wp-content/plugins/

Вы можете его просмотреть на сервере, например, с помощью FTP-клиента. В этой папке вы увидите каталоги плагинов:

Окно FileZilla

Внутри каждого каталога вы найдете файл плагина, название которого обычно совпадает с названием плагина и заканчивается расширением .php.

Окно FileZilla

Дальше добавьте следующий код в файл functions.php:

function wpschool_disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {
    if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
        'contact-form-7/wp-contact-form-7.php',
        'classic-editor/classic-editor.php'
    )))
    unset( $actions['deactivate'] );
    return $actions;
}
add_filter( 'plugin_action_links', 'wpschool_disable_plugin_deactivation', 10, 4 );

Мы отключили деактивацию для двух плагинов: Contact Form 7 и Classic Editor.

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

В разделе Плагины для указанных в коде дополнений ссылка Деактивировать исчезнет.

Раздел Плагины

Этот метод лучше, так как влияет только на отдельные плагины. Ваши клиенты по-прежнему смогут устанавливать/обновлять /деактивировать/удалять другие плагины.

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