Włącz powiadomienia o aktualizacji, wyłącz aktualizacje

10

Istnieje wiele pytań dotyczących sposobu wyłączania aktualizacji i / lub usuwania powiadomień o aktualizacji. Ale wszystkie rozwiązania, które wyłączają aktualizację, również wyłączają powiadomienia o aktualizacji.

Chcę jednak wyłączyć możliwość aktualizacji, będąc wciąż informowanym o dostępnych aktualizacjach.

Obecnie używam define( 'DISALLOW_FILE_MODS', true ); Codex

Problem polega na tym, że nie tylko wyłącza proces aktualizacji, ale także powiadomienia.

Edycja: Dobra, sam trochę poszedłem do króliczej nory. Powinienem też wyjaśnić, że nie mówię (tylko) o podstawowych aktualizacjach, ale także o wtyczkach i motywach.

Jeśli dobrze to rozumiem, dzieje się tak dlatego, że w /wp-admin/includes/update.php:250 funkcja wraca wcześnie.

Widzę więc dwie opcje:

  • ponownie dodaj update_pluginsopcję, która pokonuje cel plus nie jestem pewien efektów ubocznych
  • dodaj mój własny hak do admin_initrodzaju replikacji wp_plugin_update_rows. Próbowałem tego, ale wciąż nie wygląda tak samo. Wydaje się, że jest w tym coś więcej, a także nie wydaje się to bardzo czystym sposobem na zrobienie tego.

EDYCJA: Istnieje bilet obejmujący ten problem, jeśli masz ochotę nad nim popracować : https://core.trac.wordpress.org/ticket/25219

Kraftner
źródło
Naprawdę? Korzystam z tego i nadal widzę powiadomienie o aktualizacji. Mówi mi „Proszę powiadomić administratora strony”
Stephen Harris
Zaktualizowałem swoje pytanie.
kraftner
1
Dlaczego nie używasz wpremove lub infinitewp jak system, aby otrzymywać powiadomienia o aktualizacjach. Dzięki nim nadal możesz wyłączyć aktualizacje. Sam tego używam.
Robert hue
4
Dziękuję Robertowi za pomysł, ale to tylko kolejna zależność, która również nie odpowiada, a jedynie omija mój problem / pytanie.
kraftner

Odpowiedzi:

1

Dodaj następujący kod do motywu podrzędnego functions.phplub spakuj go jako niestandardową wtyczkę, aby łatwo włączyć / wyłączyć:

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;
    }
}

To powinno dać ci coś do pracy. Usuwa łącza aktualizacji z paska bocznego i paska narzędzi na pulpicie nawigacyjnym , pozostawiając włączone powiadomienia o aktualizacji.

Jednak aktualizacja będzie nadal wyświetlana pod każdą wtyczką, co pozwoli użytkownikowi na wykonanie aktualizacji:

wprowadź opis zdjęcia tutaj

Rozwiązaniem tego jest ukrycie linku za pomocą CSS. Nie mogłem do końca uruchomić tej części, ale biorąc pod uwagę, że to pytanie jest bardzo stare, nie chciałem tracić na to czasu. Czułem, że to pytanie wymaga pewnego zamknięcia.

Ethan Jinks O'Sullivan
źródło
Dzięki za obejrzenie. Ale to, co robisz, nie jest tym, czego szukałem. Przede wszystkim ukrywanie rzeczy w menu tak naprawdę ich nie usuwa / nie wyłącza. Jeśli znasz adres URL, nadal tam jest. Przekierowanie jest również delikatne. DISALLOW_FILE_MODSrobi znacznie więcej niż tylko blokuje aktualizacje. Również umieszczenie przekierowania w admin_menuniewłaściwym miejscu. Jest to oczywiście podstawowy błąd, który należy tam naprawić. Cała reszta to brudne i kruche hacki. Dzięki za próbę;)
kraftner
Jak dokładnie kruche jest przekierowanie? Co sprawia, że ​​wszystko inne dirty?
Ethan Jinks O'Sullivan,
Jakieś aktualizacje? Chciałbym wiedzieć, co powoduje, że przekierowanie jest kruche, przykład pomoże mi lepiej zrozumieć.
Ethan Jinks O'Sullivan
Przepraszam, że nie wróciłem. „brudny” odnosi się do faktu, że należy to naprawić w rdzeniu. Moje sformułowania były zbyt rozczarowane faktem, że tak nie jest, przepraszam za to. „Kruchy” odnosi się do faktu, że zakłada to zbyt wiele jak adresy URL stron i może się zepsuć ze zmianami WP (np. Właśnie pojawiły się błyszczące aktualizacje, nie wiem, czy to może coś zmienić) Wreszcie moją główną troską jest to, że chcę użyć DISALLOW_FILE_MODSdla inne powody, np. wyłączenie edytora. Ale ustawienie tego truewyzwala ten problem. Przepraszam, pytanie nie wyjaśniło tego.
kraftner,
Widzę. Więc to pytanie nie zostanie rozwiązane dla twoich wymagań, ponieważ wymagałoby to ulepszenia podstawowych plików.
Ethan Jinks O'Sullivan