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?
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!')
}
})
}