¿Cómo actualizar automáticamente mi complemento?

4

¿Cómo puedo hacer que aparezca mi complemento con el cuadro de diálogo New version available. Upgrade Automatically para que aparezca cuando mi complemento tiene una nueva versión? Específicamente para los complementos no alojados en el repositorio de WP.org.

    
pregunta Jared 13.03.2011 - 07:24

3 respuestas

2

Esta biblioteca integra actualizaciones automáticas de forma privada complementos alojados. Se ve muy bien.

    
respondido por el Dalton 13.03.2011 - 13:26
2

La forma más fácil que se me ocurre para hacer esto es tener su complemento "en casa" para verificar una URL en su sitio web que devuelva la versión actual de su complemento.

De esa manera, su complemento (instalado en otro sitio web) puede comparar su versión con la versión "actual" de su sitio web para ver si es igual o más reciente.

Editar: código de muestra

Debería señalar antes de implementar esto : esto agregará un banner en la parte superior de la pantalla. Si solo busca que su complemento muestre una actualización disponible en el menú de la izquierda, creo que lo hace automáticamente cuando carga la nueva versión en el repositorio de Wordpress. Si desea que el banner esté en la parte superior, proceda.

Crearía una plantilla específicamente para esta página para que no se incluyeran el encabezado y el pie de página:

<?php

    // Template Name: Bare Template

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

?>

De esa manera, todo lo que se imprimirá es el contenido de la página, lo que es bueno para lo que estamos haciendo.

A continuación, configure una página que use esta plantilla, por ejemplo, "última versión de complemento". Si ve esta página en su navegador ahora, todo lo que debería decir es el texto de la página sin código HTML adicional.

En su complemento, cree una función que imprima su aviso. He usado estilos en línea en el ejemplo, puedes usar clases si quieres.

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());

}

Y luego, atarlo para que ejecute la función:

add_action('admin_notices', 'yourpluginname_check_for_new_version');

Ahora, en su función de instalación, debe agregar una opción para guardar el número de versión en Wordpress del usuario:

update_option( 'yourpluginname_version', '2.0' );

Puedes usar update_option en lugar de add_option, ya que agregará la opción si aún no existe.

Eso debería hacerlo.

    
respondido por el Rob Williams 13.03.2011 - 10:03
1

Hay un complemento gratuito que permite la actualización automática de complementos alojados de forma privada: enlace

    
respondido por el Meglio 15.07.2011 - 22:34

Lea otras preguntas en las etiquetas