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


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.