Запрет обновления отдельных плагинов WordPress

Please log in or регистрация to like posts.
Модули

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

Мы предлагаем два способа запрета обновления конкретного плагина:

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

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

Сделать это достаточно просто.

Зайдите в раздел «Плагины», в административной консоли WordPress. Найдите нужный плагин и нажмите на «Изменить»

plugin1

В открывшемся файле (это и есть главный файл плагина), найдите строчку Version

plugin2

Измените версию плагина. В нашем случае мы указали 99.9.9. и нажмите кнопку «Обновить файл»

plugin3

2. Вариант для более продвинутых пользователей.

Можно создать фильтр для блокирования обновления отдельных плагинов.

Для этого вам нужно:

Прописать в файл config.php массив директорий плагинов, обновление которых вы хотите заменить. Если плагин состоит из одного файла – указывайте название плагина.

$DISABLE_UPDATE = array( 'название директории плагина 1', 'название директории плагина 2', 'другие названия' );

 


Добавить в function.php текущей темы добавить код, обрабатывающий массив и запрещающий обновление указанных в нем плагинов.

function filter_plugin_updates( $update ) {    
    global $DISABLE_UPDATE; // см. wp-config.php
    if( !is_array($DISABLE_UPDATE) || count($DISABLE_UPDATE) == 0 ){  return $update;  }
    foreach( $update->response as $name => $val ){
        foreach( $DISABLE_UPDATE as $plugin ){
            if( stripos($name,$plugin) !== false ){
                unset( $update->response[ $name ] );
            }
        }
    }
    return $update;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

 

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

Запрещая обновление плагинов, не забывайте, что если сам WordPress обновляется – код плагин со временем может перестать работать.

Мнение

0
0
0
0
0
0
Уже отреагировал на этот пост.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *