Popup perguntando se os dados devem ser removidos na desinstalação do plugin

4

Eu tenho um plug-in que cria algumas opções em wp_options, mas também cria tipos de postagem personalizados e é usado para preencher esse tipo de postagem. Após a instalação, faz sentido remover os dados em wp_options, mas com relação ao tipo de postagem preenchido, deve haver uma opção para o usuário escolher se deseja manter esses dados ou não.

O ideal é que eu queira um pop-up quando ele clicar no link de desinstalação, perguntando se ele deseja excluir apenas os arquivos e opções do plug-in ou excluir tudo. Como posso fazer esse pop-up?

    
por urok93 19.09.2012 / 12:39

2 respostas

4

Que tal algo semelhante a isto:

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

O que resulta disso:

Substitua o URL1 pelo URL que excluiria apenas os dados.

Observe que isso não será executado se você colocá-lo no plug-in e o plug-in estiver desativado. Colocá-lo em outro plug-in ou em um tema funcionará, mas seria uma prática ruim

Substitua também o ID do plug-in embed githubistist pelo seu próprio

    
por 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' );
    
por kaiser 24.09.2012 / 19:35