Как запретить и убрать обновление нужных плагинов

Запретить обновления

Как убрать из админки вордпресс уведомления?

В жизни бывает всякое. Вот назрела необходимость запретить на клиентских сайтах обновления определенного плагина. Когда и зачем это нужно? например, плагин перестал работать как надо после обновления вордпресс, а обновления плагина затягивается, или плагин перестал поддерживаться автором, или нужно изменить/доработать какой-то плагин, который уже стар, т.е. нужно залесть в код плагина. После изменений мы все прекрасно знаем, что такие изменения живут до первого обновления. Можно конечно не нажимать обновить плагин при сообщении, но даже если предупредить об этом владельца сайта, почему-то часто он забывает об этом и обновляется. Конечно же сайт перестает работать как надо. Звонки, переписка, трата времени и т.д.

Раньше я использовал проверенный метод, т.е. в коде плагина менял версию на очень высокую, например Version: 999999999

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

Теперь я использую в своих темах, естественно там где нужно запретить обновления, определенный код:

<?php
/*
* Запрет обновления определенных плагинов
*/
function wplife_plugin_noupdates( $update ) {
// Массив названий папок плагинов, которые нужно запретить для обновления
	$NOUPDATE = array(
		'название 1-й папки плагина',
		'название 2-й папки плагина',
		'название n-й папки плагина',
	);
    if( !is_array($NOUPDATE) || count($NOUPDATE) == 0 ){  return $update;  }
    foreach( $update->response as $name => $val ){
        foreach( $NOUPDATE as $plugin ){
            if( stripos($name,$plugin) !== false ){
                unset( $update->response[ $name ] );
            }
        }
    }
    return $update;
}
add_filter( 'site_transient_update_plugins', 'wplife_plugin_noupdates' );
?>

В массив $NOUPDATE вносятся названия папок плагинов, которые лежат в папке plugins, например ‘woocommerce’.

Код добавляем в файл functions.php.

Буду рад если кому-то пригодился код.

2 комментария к “Как запретить и убрать обновление нужных плагинов”

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

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

Пролистать наверх