Se eu renomear um plugin (em seu arquivo php principal), ainda recebo notificações de atualização?

17

Recentemente, fui forçado a editar os arquivos principais de um plug-in. Atualizei o título do referido plug-in para indicar que ele foi editado.

Minha pergunta é: o plug-in ainda receberá notificações de atualização? Nesse caso, provavelmente desativarei as atualizações deste plug-in, para impedir que alguém se esqueça das minhas atualizações e substituições.

Idealmente, gostaria de ver se o plugin recebe atualizações, mas não permitir que elas aconteçam apenas clicando em atualizar. (teria que ser desinstalado e reinstalado, ou similar).

Zach Lysobey
fonte
Sobre esse problema, recentemente publiquei um relatório de bug no WordPress Track: Backup de um diretório de plugins / temas. Eu acho que um backup automático simples por dentro, mas antes do recurso de atualização automática, facilitaria as coisas para todos. Não vejo nenhuma razão para isso não ter sido feito quando a atualização automática foi lançada pela primeira vez, nem porque não foi feita enquanto isso, nem por que não deveria ser feita.
Ando

Respostas:

17

Como o SickHippie diz e o AFAIK, você não pode ter os dois. Estou adicionando uma resposta com as informações que coletei nesta pilha.


Desativar notificação de atualização para plugins individuais

Bainternet em um comentário:

Basta abrir o arquivo do plugin e alterar o número da versão para algo como 9.9.9

Resposta de Hameedullah Khan (removendo o aviso de atualização do Akismet):

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

O que aciona um alerta de atualização de plug-in

Resposta de Otto:

A API usa um mecanismo bastante elaborado para comparar plug-ins com plug-ins conhecidos, mas estas são as principais coisas verificadas: URI do plug-in, nome do plug-in e slug do plug-in (o nome do diretório em que o plug-in está)

Altere qualquer uma delas e reduz as chances de encontrar uma correspondência, mas ainda assim poderá ocorrer se duas delas corresponderem, por exemplo.

As informações no readme.txt não são usadas para isso. O cabeçalho do arquivo PHP do plug-in é usado.


Abordagem alternativa 1


Abordagem alternativa 2 retirada dos Comentários

  • altere o nome do plug-in, o número da versão e o nome do diretório
  • instale o plug-in original, mas deixe-o desativado para receber avisos de atualização
  • adicione uma mensagem personalizada à descrição do plug-in (ou substitua o original)
  • remova as ações do plug-in (Ativar | Editar | Excluir) e a caixa de seleção Ações em massa

insira a descrição da imagem aqui

add_filter( 'all_plugins', 'wpse_56968_on_list_plugins' );
add_filter( 'plugin_action_links_akismet/akismet.php', 'wpse_56968_remove_plugin_actions', 10, 4 );
add_action( 'admin_head-plugins.php', 'wpse_56968_remove_plugin_checkbox' );

function wpse_56968_on_list_plugins( $plugins )
{
    $plugins['akismet/akismet.php']['Description'] = '<strong>*** NOTICE: PLUGIN ONLY TO CHECK UPDATES IN THE ORIGINAL ONE! ***</strong> ';// . $plugins['akismet/akismet.php']['Description'];
    return $plugins;
}

function wpse_56968_remove_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) 
{
    unset( $actions['activate'], $actions['edit'], $actions['delete'] );
    return $actions; 
}

function wpse_56968_remove_plugin_checkbox()
{
    ?>
        <script type="text/javascript">
            jQuery(document).ready( function($) {
                $('tr#akismet th.check-column').html('&nbsp;')
            });     
        </script>
    <?php
}

Bilhetes principais relacionados

brasofilo
fonte
Resposta incrível! Talvez eu mude o nome do plug-in, o número da versão e o nome do diretório e depois instale o plug-in original, mas deixo-o desativado para que eu possa ver quando ele é atualizado.
Zach Lysobey
1
@ZachL - Brilhante! Isso deve funcionar muito bem!
SickHippie
2
Você também pode modificar o cabeçalho do plugin originais Descriptione adicionar algum aviso, como:Description: ONLY FOR REFERENCE, DON'T ACTIVATE!...[rest of the description]
brasofilo
1
@ZachL - Adicionado uma segunda alternativa completa com base neste Comentários :)
brasofilo
3

Você não pode desativar as atualizações, mas não as notificações de atualização - elas estão ligadas.

Para desativar completamente as notificações, altere o nome da pasta em que o plug-in se encontra.

Meu método pessoal é anexar 3 a ao título do plug-in no plugin.phparquivo principal , portanto, na minha lista de plugins, vejo AAA/Plugin Name. Isso o coloca no topo da lista para referência e será exibido na lista de plugins e na lista de atualização. É basicamente uma flag pessoal, então eu sei que não é possível atualizar automaticamente esses plugins específicos.

SickHippie
fonte
Obrigado pela resposta. Apenas para esclarecer, você está dizendo que renomear um plugin NÃO interrompe suas notificações de atualização?
Zach Lysobey
Quanto à sua primeira frase ... Tenho certeza de que encontrei uma maneira de obter esse efeito, talvez com alguns js sorrateiros para remover o link da notificação.
Zach Lysobey
AFAIK, renomear o arquivo principal ou o título de um plug-in nesse arquivo principal não interrompe as notificações de atualização. Tenho quase certeza de que o repositório de plugins é baseado no nome da pasta (o zip baixado do repositório deve ter o mesmo nome mais o número da versão). Para a desativação da atualização, há a lista de plug-ins e a lista de atualizações, portanto, verifique se o seu JS está disparando nos dois locais (também compartilhe esse JS - pode ser útil).
SickHippie