Como atualizar automaticamente meu plugin?

4

Como faço para que meu plug-in seja exibido com a caixa de diálogo New version available. Upgrade Automatically para aparecer quando meu plug-in tiver uma nova versão? Especificamente para plugins não hospedados no repositório do WP.org.

    
por Jared 13.03.2011 / 07:24

3 respostas

2

Esta biblioteca integra atualizações automáticas para particulares plugins hospedados. Parece ótimo.

    
por Dalton 13.03.2011 / 13:26
2

A maneira mais fácil de pensar em fazer isso é ter seu plug-in "phone home" para verificar uma URL em seu website que retorna a versão atual do seu plug-in.

Dessa forma, o seu plug-in (instalado em outro site) pode verificar sua versão em relação à versão "atual" em seu website para ver se é o mesmo ou mais recente.

Editar: código de amostra

Eu devo apontar antes de implementar isso : isso adicionará um banner na parte superior da tela. Se você está apenas querendo que seu plugin mostre uma atualização disponível no menu à esquerda, eu acho que faz isso automaticamente quando você faz o upload da nova versão para o repositório do Wordpress. Se você quiser o banner na parte superior, prossiga.

Eu criaria um modelo especificamente para esta página para que o cabeçalho e o rodapé não fossem incluídos:

<?php

    // Template Name: Bare Template

    while (have_posts()) : the_post();
        the_content();
    endwhile;

?>

Dessa forma, tudo o que será impresso é o conteúdo da página, o que é bom para o que estamos fazendo.

Em seguida, configure uma página que use esse modelo, por exemplo, "latest-plugin-version". Se você visualizar esta página no seu navegador agora, tudo o que deve dizer é o texto da página sem nenhum html extra.

No seu plugin, crie uma função que imprima seu aviso. Eu usei inline styles no exemplo, você pode usar classes se quiser.

function yourpluginname_check_for_new_version() {

    /* You probably shouldn't check for updates more than once a day, 
    for everyone's bandwidth's sake. */

    $last_check = get_option('yourpluginname_lastcheck');
    if ( $last_check + 86400 > time() ) { return; }

    // If we're still here, check your site for a new version.

    $current_version = get_option('yourpluginname_version');
    $latest_version = file_get_contents('http://www.yourdomain.com/latest-plugin-version/');

    if ( $current_version != $latest_version ) {
        ?>
        <div style="background: #FFDDDD; color: red; width: 600px; 
                    margin: 20px auto; padding: 10px; text-align: center;
                    border: 2px red solid;">
            There's a new version of MY PLUGIN available! You should upgrade now.
        </div>
        <?php
    }

    // Log that we've checked for an update now.
    update_option('yourpluginname_lastcheck', time());

}

E, em seguida, para vinculá-lo para que ele execute a função:

add_action('admin_notices', 'yourpluginname_check_for_new_version');

Agora, na sua função de instalação, você deve adicionar uma opção para o número da versão a ser salvo no Wordpress do usuário:

update_option( 'yourpluginname_version', '2.0' );

Você pode usar update_option em vez de add_option, pois ele adicionará a opção se ela ainda não existir.

Isso deveria ser feito.

    
por Rob Williams 13.03.2011 / 10:03
1

Existe um plug-in gratuito que permite o autoupgrade para plug-ins hospedados em particular: enlace

    
por Meglio 15.07.2011 / 22:34