Хотите избежать случайной деактивации плагинов в 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. Не забудьте сохранить внесенные изменения.

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

Также вы можете запретить активацию, удаление и обновление плагинов.
Отключение обновлений плагинов на сайтах клиентов может привести к снижению безопасности ресурса.
Данный плагин не будет функционировать, если клиент отключит эту настройку.
Важно помнить, что использование данного плагина может ограничить возможности других администраторов и разработчиков, поэтому перед его установкой убедитесь, что у всех пользователей есть необходимый уровень доступа для управления плагинами. Также рекомендуется регулярно проверять обновления для используемых плагинов и следить за их совместимостью с версией WordPress, чтобы избежать проблем с безопасностью и функциональностью сайта.
Если вы хотите восстановить возможность деактивации плагинов, просто деактивируйте сам плагин Disable Plugin Deactivation через FTP или с использованием консоли управления хостингом, если доступ к административной панели невозможен.
Способ 2. Запрет деактивации отдельных плагинов
Этот способ эффективен как для одного установленного плагина, так и для группы. Он требует добавления кода в файл functions.php.
Все дальнейшие шаги подразумевают редактирование functions.php — основного файла конфигурации темы WordPress. Если у вас возникли трудности с редактированием этого файла, полезным будет плагин ProFunctions.
Сначала необходимо узнать имена основных файлов плагинов, деактивацию которых нужно заблокировать. Эти файлы находятся в специальной папке:
/wp-content/plugins/
Вы можете открыть ее на сервере с помощью FTP-клиента. В этой директории располагаются папки всех установленных плагинов:

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

Затем добавьте следующий код в файл 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 следует быть осторожным, так как ошибка может привести к сбою сайта. Рекомендуется создать резервную копию файла перед внесением изменений.
Кроме того, если вы используете темную тему, некоторые плагины могут не отображаться корректно. Проверьте совместимость с вашей темой, чтобы избежать возможных проблем.
Если вы хотите сделать этот метод более универсальным, рассмотрите возможность использования условных операторов для добавления дополнительных плагинов в массив, что упростит процесс управления ими в будущем.