Как заблокировать отключения плагина в WordPress

Далее читателям моего сайта представлен простой пример того, как можно программным путем заблокировать удаление одного или нескольких плагинов из админки движка WordPress на странице со списоком этих самых плагинов - http://druweb.ru/wp-admin/plugins.php.

<?php
function zablokiorovat_plugini($actions, $plugin_file, $plugin_data, $context) {
    // Убираем ссылку Изменить у выбранных плагинов
    if (array_key_exists('edit', $actions)) :
        unset($actions['edit']);
    endif;

    // Убираем ссылку деактивации (отключения) плагина из админки:
    if (array_key_exists('deactivate', $actions) && in_array($plugin_file, array(
                'akismet/akismet.php',
                'wp-recent-comments-with-avatars/wp-recent-comments-with-avatars.php',
            ))) :
        unset($actions['deactivate']);
    endif;
    return $actions;
}

add_filter('plugin_action_links', 'zablokiorovat_plugini', 10, 4);
?>

В 10-ой и 11-ой строчказх приведенного здесь листинга я заблокировал возможность деактивации и последующего удаления плагинов Akismet и Wp-recent-comments-with-avatars. Однако отмечу, что недостатком данного подхода является то, что опытный пользователь (если будет открыт доступ к редактору файлов) сможет по-прежнему корректировать исходники дополнений.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.