При разработке сайта, для реализации различных функций, программист устанавливает один или несколько плагинов. Для обеспечения стабильной работы веб-ресурса крайне важно, чтобы эти плагины не деактивировались. На сайтах, как правило, работает множество авторизованных пользователей, участвующих в его администрировании. Например, в блоге может быть несколько редакторов, а в интернет-магазине, помимо менеджеров, могут трудиться и другие администраторы. Иногда возникает ситуация, когда кто-то из них случайно или преднамеренно отключает плагин, который необходим для корректного функционирования всего сайта.
Чтобы избежать таких проблем, можно использовать несколько подходов. Во-первых, существует метод запрета деактивации плагинов через код. Добавляя определенные строки кода в файл functions.php вашей темы, вы можете ограничить возможности других администраторов. Например, вы можете использовать функцию remove_action для отключения стандартного механизма деактивации.
Еще один эффективный способ — использование специального плагина для управления доступом. Такие плагины позволяют точно настраивать права пользователей, включая или исключая возможность деактивации определенных плагинов. Вы можете настроить роли пользователей таким образом, чтобы только определенные администраторы имели право управлять плагинами.
Также стоит обратить внимание на использование define( 'DISALLOW_FILE_MODS', true ); в файле wp-config.php. Эта строка кода блокирует возможность редактирования файлов темы и плагинов, а также их установки и удаления, что существенно повышает безопасность вашего сайта.
Следуя этим рекомендациям, вы сможете защитить свой сайт от случайной или намеренной деактивации важных плагинов, что в свою очередь обеспечит его стабильность и надежность в работе.
Как запретить деактивацию плагина?
Чтобы отключить плагин, нужно зайти в админ-панель и перейти в раздел Плагины -> Установленные, затем нажать ссылку Деактивировать рядом с активным плагином.

Для того чтобы предотвратить отключение важного плагина, можно скрыть ссылку Деактивировать. Это достигается посредством добавления специального PHP-кода в файл вашей темы functions.php.
Если вы не уверены, как редактировать functions.php, можно использовать плагин ProFunctions.
Этот подход работает только с активными плагинами на сайте.
Теперь необходимо добавить в конец указанного файла следующие строки:
function site_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', 'site_disable_plugin_deactivation', 10, 4 );
Этот код отключает возможность деактивации для двух плагинов: WP-Optimize и PHP Code Widget. Об этом свидетельствуют строки:
'wp-optimize/wp-optimize.php', 'php-code-widget/execphp.php'
Вместо указанных значений следует вставить свои. Для этого нужно разобраться, что они означают. Первая часть строки (до косой черты) указывает на папку, созданную плагином при установке, а вторая часть – это название главного файла, ответственного за работу плагина, которое обычно совпадает с именем папки.
Если все представленные строки указаны правильно, то кнопка Деактивировать не будет отображаться для указанных плагинов.

Кроме того, рекомендуется сохранять резервную копию файла functions.php перед внесением изменений, чтобы в случае возникновения ошибок можно было быстро восстановить исходное состояние. Также стоит отметить, что изменения в functions.php будут потеряны при обновлении темы, если вы не используете дочернюю тему. Всегда используйте дочерние темы для кастомизации и добавления собственного кода.
Защита ключевых настроек расширения
Рекомендуется использовать механизм прав доступа, чтобы ограничить редактирование и настройки критически важных дополнений. Установите настройки, которые разрешают изменять параметры только определенным пользователям с соответствующими ролями. Например, администратор может регулировать доступ, добавив следующую проверку в файл функций:
if (!current_user_can('administrator')) {
exit;
}
При оптимизации параметров стоит сохранить важные настройки в конфигурационных файлах. Это позволит восстановить их при необходимости. Рассмотрите использование PHP-констант для хранения значений или полей в рамках базы данных. К примеру:
define('MY_PLUGIN_SETTING', 'значение');
Внимание! Настройте резервное копирование базы данных, чтобы избежать потери данных. Периодическая выгрузка позволит восстановить информацию о нужных настройках, если несанкционированные изменения произошли. Существует множество плагинов для автоматизации этого процесса.
Шифрование чувствительных данных – еще один шаг к повышению безопасности. Если в параметрах присутствуют ключи API или пароли, используйте функции для шифрования, такие как openssl_encrypt. Это защитит информацию даже в случае доступа к базе данных.
Важно помнить, что необходимо проводить регулярные обновления. Поддерживайте актуальность всех компонентов, что значительно снижает вероятность уязвимостей. Ставьте перед собой задачу тестировать обновления в безопасной среде перед их внедрением на живом сайте.
Наконец, пользуйтесь логированием действий. Это позволит отслеживать изменения настроек и выявлять потенциальные проблемы. Встраивание системы логирования в ваше решение поможет с диагностикой инцидентов и обеспечит дополнительный контроль над работой важных расширений.