Mensaje emergente que pregunta si se deben eliminar los datos al desinstalar el complemento

4

Tengo un complemento que crea algunas opciones en wp_options, pero también crea tipos de publicación personalizados y se usa para completar ese tipo de publicación. Después de la instalación, tiene sentido eliminar los datos en wp_options, pero con respecto al tipo de publicación completada, debe haber una opción para que el usuario elija si desea conservar esos datos o no.

Idealmente, me gustaría una ventana emergente cuando él haga clic en el enlace de desinstalación, preguntándole si desea eliminar solo los archivos y opciones del complemento, o eliminar todo. ¿Cómo puedo hacer tal ventana emergente?

    
pregunta urok93 19.09.2012 - 12:39

2 respuestas

4

¿Qué tal algo similar a esto?

function wpse65611_script() {
    wp_enqueue_style( 'wp-pointer' );
    wp_enqueue_script( 'wp-pointer' );
    wp_enqueue_script( 'utils' ); // for user settings
?>
    <script type="text/javascript">
    jQuery('#embed-github-gist .delete a').click(function(){
            jQuery('#embed-github-gist .delete a').pointer({
                content: '<h3>Delete this or delete everything?</h3><p><a id="this" class="primary button" href="url1">Delete data</a> <a id="everything" class="button" href="'+jQuery('#embed-github-gist .delete a').attr('href')+'">Delete plugin</a></p>',
                position: {
                    my: 'left top',
                    at: 'center bottom',
                    offset: '-1 0'
                },
                close: function() {
                    //
                }
            }).pointer('open');
return false;
        });
    </script><?php
}
add_action( 'admin_footer', 'wpse65611_script' );

Lo que resulta en esto:

Reemplace url1 con la url que solo eliminaría los datos.

Tenga en cuenta que esto no se ejecutará si lo coloca en el complemento y el complemento se desactiva, ponerlo en otro complemento o en un tema funcionaría pero sería una mala práctica

También reemplaza la ID del complemento github gist incrustado con el tuyo

    
respondido por el Tom J Nowell 25.09.2012 - 16:54
1
function wpse65611_confirm_uninstall()
{
    ?>
    <form>
        <input type="button" onclick="wpse65611_confirmation()" value="Delete Data?">
    </form>
    <?php
}

function wpse65611_script()
{
<script type="text/javascript">
    function wpse65611_confirmation()
    {
        var answer = confirm( "Delete Data?" );
        if ( answer )
        {
            window.location = "<?php admin_url( 'plugins.php?delete=data' ); ?>";
        }
        else
        {
            window.location = "<?php admin_url( 'plugins.php' ); ?>";
        }
    }
</script>
}
add_action( 'admin_footer', 'wpse65611_confirmation' );
    
respondido por el kaiser 24.09.2012 - 19:35

Lea otras preguntas en las etiquetas