Увімкнути сповіщення про оновлення, відключити оновлення


10

Існує багато питань, як відключити оновлення та / або видалити сповіщення про оновлення. Але всі рішення, які відключають оновлення, також вимикають сповіщення про оновлення.

Але я хочу відключити можливість оновлення, отримуючи повідомлення про доступні оновлення.

В даний час я використовую define( 'DISALLOW_FILE_MODS', true ); Codex

Проблема з цим полягає в тому, що він не тільки вимикає процес оновлення, але і сповіщення.

Редагувати: Гаразд, я трохи пішов по кролячій норі. Я думаю, я також повинен уточнити, що я не (тільки) говорю про основні оновлення, але також плагіни та теми.

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

Тому я бачу два варіанти:

  • повторно додайте update_pluginsваріант, який тип перемагає мету плюс я не впевнений у побічних ефектах
  • додати мій власний гачок до admin_initтипу реплікації wp_plugin_update_rows. Я спробував це, але все ще виглядає не однаково. Здається, в цьому є ще щось, і це не здається дуже чистим способом зробити це.

EDIT: Існує квиток, що висвітлює це питання, якщо ви хочете працювати над ним: https://core.trac.wordpress.org/ticket/25219


Дійсно? Я використовую це, і я все ще бачу повідомлення про оновлення. Він повідомляє мені "Будь ласка, повідомте адміністратора сайту"
Стівен Харріс

Я оновив своє запитання.
kraftner

1
Чому б не використовувати систему wpremove або infinitewp, як щоб отримувати сповіщення про оновлення. За допомогою них ви все одно можете вимкнути оновлення. Я цим самим користуюся.
Роберт відтінок

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?
Ethan Jinks O'Sullivan

Будь які оновлення? Я хотів би знати, що робить переспрямування крихким, приклад допоможе мені зрозуміти краще.
Ethan Jinks O'Sullivan

Вибачте, що не повернувся. "брудний" відноситься до того, що це слід виправити в основі. Моє формулювання викликало занадто велике розчарування з приводу того, що це не так, вибачте з цього приводу. "Крихке" посилається на те, що це передбачає занадто багато, як URL-адреси сторінок і може порушуватися зі змінами WP (наприклад, блискучі оновлення щойно відбулися, я не знаю, чи це може щось змінити) Нарешті, моя головна стурбованість полягає в тому, що я хочу використовувати DISALLOW_FILE_MODSдля також інші причини, наприклад вимкнення редактора. Але її встановлення trueвикликає це питання. Вибачте, питання не стало таким зрозумілим.
kraftner

Розумію. Таким чином, це питання не вирішиться для ваших вимог, оскільки воно вимагатиме налаштування основних файлів.
Ethan Jinks O'Sullivan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.