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

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

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

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

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

Метод 1: Использование файла functions.php

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


function prevent_plugin_deactivation() {
if (!current_user_can('activate_plugins')) {
wp_die(__('У вас нет прав для отключения плагинов.'));
}
}
add_action('admin_init', 'prevent_plugin_deactivation');

Таким образом, только администраторы смогут деактивировать плагины, а другие пользователи увидят уведомление о недостатке прав.

Метод 2: Использование плагина

Существуют плагины, которые позволяют управлять правами доступа пользователей в WordPress. Например, вы можете использовать User Role Editor. С его помощью вы можете настроить разрешения для каждой роли пользователя, включая возможность деактивации плагинов.

Просто установите плагин, перейдите в его настройки и уберите разрешение на управление плагинами у всех ролей, кроме администраторов.

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

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

Это простой и рекомендуемый для начинающих способ.

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

Сначала установите плагин Disable Plugin Deactivation.

После его активации в административной панели перейдите в раздел Плагины > Настройки деактивации плагинов.

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

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

После этого кнопка деактивации больше не будет доступна для всех активных плагинов.

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

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

Отключение обновлений плагинов на сайтах клиентов может привести к снижению безопасности ресурса.

Данный плагин не будет функционировать, если клиент отключит эту настройку.

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

Если вы хотите восстановить возможность деактивации плагинов, просто деактивируйте сам плагин Disable Plugin Deactivation через FTP или с использованием консоли управления хостингом, если доступ к административной панели невозможен.

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

Этот способ эффективен как для одного установленного плагина, так и для группы. Он требует добавления кода в файл functions.php.

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

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

/wp-content/plugins/

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

Окно FileZilla

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

Окно FileZilla

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

function site_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', 'site_disable_plugin_deactivation', 10, 4 );

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

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

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

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

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

Обратите внимание, что при изменении кода в файле functions.php следует быть осторожным, так как ошибка может привести к сбою сайта. Рекомендуется создать резервную копию файла перед внесением изменений.

Кроме того, если вы используете темную тему, некоторые плагины могут не отображаться корректно. Проверьте совместимость с вашей темой, чтобы избежать возможных проблем.

Если вы хотите сделать этот метод более универсальным, рассмотрите возможность использования условных операторов для добавления дополнительных плагинов в массив, что упростит процесс управления ими в будущем.

Оставьте комментарий