Ativar notificação de atualização, desativar atualizações

10

Há muitas dúvidas sobre como desativar atualizações e / ou remover notificações de atualização. Mas todas as soluções que desativam a atualização também desativam as notificações de atualização.

Mas eu quero desativar a possibilidade de atualizar enquanto ainda estou sendo notificado sobre as atualizações disponíveis.

Atualmente, uso define( 'DISALLOW_FILE_MODS', true ); Codex

O problema é que isso não apenas desativa o processo de atualização, mas também as notificações.

Edit: Ok, eu abaixei o buraco do coelho um pouco eu mesmo. Acho que também devo esclarecer que não estou (apenas) falando sobre atualizações principais, mas também plugins e temas.

Se eu entendi corretamente, isso ocorre porque /wp-admin/includes/update.php:250 a função retorna cedo.

Então, vejo duas opções:

  • adicione novamente a opção update_plugins , o que acaba com o objetivo, além de não ter certeza dos efeitos colaterais
  • adicione meu próprio gancho a admin_init tipo de replicar wp_plugin_update_rows . Eu tentei isso, mas ainda não parece do mesmo jeito. Parece haver um pouco mais, também não parece uma maneira muito limpa de fazer isso.

EDIT: Existe um ticket cobrindo esse problema caso você queira trabalhar nele: enlace

    
por kraftner 17.09.2014 / 13:21

1 resposta

1

Adicione o seguinte código no functions.php do seu tema filho ou empacote-o como um plug-in personalizado para ativar / desativar facilmente:

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

Isso deve lhe dar algo para trabalhar. Ele remove os links de atualização da barra lateral e da barra de ferramentas no Painel de controle enquanto deixa as notificações de atualização ativadas.

No entanto, a atualização agora ainda será exibida em cada plug-in, o que permitiria ao usuário realizar atualizações:

Uma solução para isso é ocultar o link via CSS. Eu não conseguia fazer essa parte funcionar, mas como essa pergunta é muito antiga, também não queria perder tempo. Eu senti que esta questão precisava de um certo encerramento.

    
por Ethan Jinks O'Sullivan 11.08.2016 / 17:58