Cum să dezinstalați în mod corespunzător pluginul în wordpress

Dacă pluginul dvs. scrie orice date oriunde: în opțiuni, bază de date, fișiere etc. atunci cu eliminarea completă a plugin-ului, este logic să ștergeți toate datele care se referă numai la acesta, astfel încât acestea să nu moare mort.

Procesul de eliminare a plug-in-ului începe când utilizatorul a dezactivat pluginul și apoi a făcut clic pe linkul "Șterge" din panoul de administrare de pe pagina de pluginuri.

Dezvoltatorii neexperimentați fac uneori greșeala de a folosi cârligul de dezactivare al pluginului pentru a șterge datele de pretutindeni. Acest lucru este incorect - atunci când dezactivați, numai datele temporare trebuie șterse (șterse) și toate datele numai atunci când plug-in-ul este eliminat.

Arata cam asa:

Eliminarea opțiunilor din tabela wp_options

De asemenea, rețineți că atunci când pluginul este eliminat, cârligul de dezactivare a fost deja activat. Ie Pluginul activ este întotdeauna dezactivat întotdeauna și numai ulterior șters - este imposibil să scoateți plug-in-ul dacă acesta este activ.

Cum apare ștergerea?

Două moduri de dezinstalare a pluginurilor

Dezvoltatorii WordPress au două opțiuni pentru a elimina complet pluginul:

Creați un fișier uninstall.php în directorul rădăcină al pluginului.

  • Utilizați funcția register_uninstall_hook () - funcționează atunci când pluginul este dezinstalat.
  • Metoda 1: Fișierul uninstall.php

    Această metodă este mai preferată, comparativ cu a doua.

    Dacă în timpul eliminării plug-in-ului WordPress află fișierul uninstall.php în folderul său, codul pentru acest fișier va fi executat, dar cârligul de dezactivare nu va mai funcționa.

    Un punct important este utilizarea obligatorie a verificării constantei WP_UNINSTALL_PLUGIN în acest fișier. Acest lucru este necesar pentru a asigura securitatea, astfel încât să nu puteți accesa direct acest fișier.

    Fișierele plugin-ului vor fi șterse după declanșarea codului de fișier uninstall.php. În momentul în care fișierul uninstall.php este declanșat, încă nu a fost lansat niciun cod de plugin și nu sunt conectate fișiere, deci orice conexiune de clase, definiția constantelor trebuie făcută separat.

    În acest fișier, trebuie să plasați codul care va elimina tot ce este legat de plugin: opțiuni, tabele de baze de date, câmpuri arbitrare etc.

    Acest proces este ireversibil!

    Constanta WP_UNINSTALL_PLUGIN este definită de WordPress în momentul deplasării pluginului și nu va fi determinată dacă accesați direct fișierul uninstall.php.

    De asemenea, constanta WP_UNINSTALL_PLUGIN nu va fi definită, atunci când se utilizează tehnica de a scoate pluginul prin cârlig, este determinată numai după ce fișierul uninstall.php a fost găsit în dosarul plugin.

    Cum ar trebui să arata uninstall.php:

    Debug când eliminați pluginul

    Pentru a verifica modul în care funcționează ștergerea, dar nu ștergeți fișierele pluginului, adăugați ruperea scriptului prin intermediul die () la sfârșitul fișierului uninstall.php. De asemenea, puteți transmite orice date, de exemplu, prin print_r () sau altfel.

    Pentru a vedea rezultatul depanării, atunci când pluginul este dezinstalat prin AJAX, deschideți panoul Dezvoltător din Chrome (fila "Rețea"). Acolo când porniți AJAX, puteți vedea interogarea și puteți vedea rezultatul acesteia.

    Metoda 2: funcția register_uninstall_hook ()

    Când plugin-ul este șters și nu există un fișier uninstall.php în directorul său. dar în fișierul plugin principal este înregistrată funcția delete register_uninstall_hook (). Această funcție de eliminare a pluginului va fi apelată.

    Când folosiți register_uninstall_hook (). Toate acțiunile și codurile plug-in trebuie să se afle în interiorul funcțiilor și să fie conectate prin cârlige, adică nu ar trebui să se deschidă niciun fel de acțiuni de plugin în fișierele plugin-urilor, deoarece altfel în timpul eliminării pluginului, acestea vor funcționa și ar putea interfera cu procesul de dezinstalare.

    Nu se recomandă utilizarea acestei metode, deoarece necesită o înțelegere clară a funcționării acesteia. Și chiar și în acest caz, este încă posibil să faceți o greșeală cu ușurință. Dar dacă pentru plug-in-ul dvs. este disponibilă doar o astfel de opțiune, urmați aceste reguli:

    • Nu puteți rula (inițializa) codul pluginului direct în fișier - faceți-l prin plugins_loaded cârlig sau mai târziu.
    • Este mai bine să utilizați fișierul de dezinstalare unistall.php.

    Un exemplu de cod pentru dezinstalarea unui plugin prin intermediul unui cârlig:

    Acest cod ar trebui să fie în fișierul plugin principal, este pe el că ne uităm __FILE__. Dacă din anumite motive register_uninstall_hook () trebuie să fie plasat într-un alt fișier plug-in, atunci în primul parametru (în loc de __FILE__), trebuie să specificați calea către fișierul principal de plugin.

    Articole similare