Включить уведомление об обновлении, отключить обновления

10

Существует много вопросов о том, как отключить обновления и / или удалить уведомления об обновлениях. Но все решения, которые отключают обновление, также отключают уведомления об обновлениях.

Но я хочу отключить возможность обновления, оставаясь при этом уведомленным о доступных обновлениях.

В настоящее время я использую define( 'DISALLOW_FILE_MODS', true ); Кодекс

Проблема в том, что он не только отключает процесс обновления, но и уведомления.

Изменить: Хорошо, я немного спустился в кроличью нору. Думаю, мне также следует уточнить, что я говорю (не только) об основных обновлениях, но также о плагинах и темах.

Если я правильно понимаю, это потому, что в /wp-admin/includes/update.php:250 функция возвращается рано.

Итак, я вижу два варианта:

  • повторно добавьте update_pluginsопцию, которая побеждает цель плюс я не уверен в побочных эффектах
  • добавить свой собственный крючок для admin_initвоспроизведения wp_plugin_update_rows. Я попробовал это, но это все равно не выглядит все равно. Кажется, есть еще кое-что, и это не очень чистый способ сделать это.

РЕДАКТИРОВАТЬ: есть билет на эту проблему, если вы хотите работать над этим: https://core.trac.wordpress.org/ticket/25219

kraftner
источник
В самом деле? Я использую это, и я все еще вижу уведомление об обновлении. Он говорит мне: «Пожалуйста, сообщите администратору сайта»
Стивен Харрис
Я обновил свой вопрос.
kraftner
1
Почему бы вам не использовать wpremove или Infinewewp, как систему, чтобы получать уведомления об обновлениях. С их помощью вы все равно можете отключить обновления. Я использую это сам.
Роберт Хюэ
4
Спасибо Роберту за идею, но это просто еще одна зависимость, и она также не отвечает, а только обходит мою проблему / вопрос.
kraftner

Ответы:

1

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

add_action( 'wp_before_admin_bar_render', 'wpse161696_toolbar_menu' );
add_action( 'admin_menu', 'wpse161696_updates' );

function wpse161696_toolbar_menu() { // Remove update menu item from the toolbar
    global $wp_admin_bar;
    $wp_admin_bar -> remove_menu( 'updates' );
}

function wpse161696_updates() { // Remove all updating related functions
    remove_submenu_page( 'index.php', 'update-core.php' ); // Remove Update submenu
    // Redirect to Dashboard if update page is accessed
    global $pagenow;
    $page = array(
        'update-core.php',
        'update.php',
        'update.php?action=upgrade-plugin'
        );
    if ( in_array( $pagenow, $page, true ) ) {
        wp_redirect( admin_url( 'index.php' ), 301 );
        // wp_die( 'Updates are disabled.' ); // An error message can be displayed instead
        exit;
    }
}

Это должно дать вам кое-что для работы. Он удаляет ссылки обновления с боковой панели и панели инструментов на панели инструментов , оставляя уведомления об обновлениях включенными.

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

введите описание изображения здесь

Решение этой проблемы - скрыть ссылку через CSS. Я не мог заставить эту часть работать, но, учитывая, что этот вопрос очень старый, я тоже не хотел тратить на него время. Я чувствовал, что этот вопрос нуждается в некотором закрытии.

Итан Джинкс О'Салливан
источник
Спасибо, что посмотрели. Но то, что вы делаете, на самом деле не то, что я искал. Прежде всего, скрытие чего-либо из меню фактически не удаляет / не отключает его. Если вы знаете URL, он все еще там. Редирект тоже хрупкий. DISALLOW_FILE_MODSделает намного больше, чем просто блокирует обновления. Кроме того, переадресация не в admin_menuтом месте. Это явно основная ошибка, которую нужно исправить там. Все остальное - грязные и хрупкие взломы. Спасибо за попытку в любом случае;)
kraftner
Как редирект хрупок точно? Что делает все остальное dirty?
Итан Джинкс О'Салливан
Любые обновления? Я хотел бы знать, что делает редирект хрупким, пример поможет мне лучше понять.
Итан Джинкс О'Салливан
Извините, что не вернулся. «Грязный» относится к тому, что это должно быть исправлено в ядре. Моя формулировка несла слишком большое разочарование по поводу того, что это не так, извините за это. «Хрупкий» относится к тому факту, что это предполагает слишком большое сходство с URL-адресами страниц и может нарушаться при изменениях WP (например, только что произошли блестящие обновления, я не знаю, может ли это что-то изменить) Наконец, моя главная проблема заключается в том, что я хочу использовать DISALLOW_FILE_MODSдля и другие причины, например, отключение редактора. Но установка этого trueвызывает эту проблему. Извините, вопрос не прояснил это.
kraftner
Понимаю. Таким образом, этот вопрос не будет решен в соответствии с вашими требованиями, поскольку он потребует настройки основных файлов.
Итан Джинкс О'Салливан