web-dev-qa-db-fra.com

Afficher un message de confirmation sur la désactivation du plugin

Lorsque mon plug-in est désactivé, je souhaite que l'utilisateur me confirme si toutes les options/tables du plug-in doivent être supprimées ou laissées telles quelles. En fonction de l'option sélectionnée, je souhaite aller plus loin. C'est possible ? Si oui comment?

1
Navin Nagpal

J'ai implémenté une solution de contournement avec JavaScript. Je charge mon propre fichier JavaScript:

wp_enqueue_script('wp-deactivation-message', plugins_url('js/message.js', dirname(__FILE__)), array());

qui contient un script qui ajoute les événements suivants: lorsque l'utilisateur clique sur notre bouton Désactiver du plug-in, il l'empêche d'effectuer cette action et affiche une fenêtre JavaScript demandant ce dont vous avez besoin. Si l'utilisateur accepte, il sera désactivé. Si l'utilisateur appuie sur 'cancel', rien ne se passe:

message.js

window.onload = function(){
        document.querySelector('[data-slug="plugin-name-here"] a').addEventListener('click', function(event){
            event.preventDefault()
            var urlRedirect = document.querySelector('[data-slug="plugin-name-here"] a').getAttribute('href');
            if (confirm('Are you sure you want to save this thing into the database?')) {
                window.location.href = urlRedirect;
            } else {
                console.log('Ohhh, you are so sweet!')
            }
        })
}
1
Ursu Alexandr