Kako da sprečite klijente da deaktiviraju WordPress plugine
Ako izrađujete web sajtove za svoje klijente, verovatno imate spisak neophodnih plugina koje instalirate na sajtove koje radite. Kao što znamo, plugini su dobri, jer na jednostavan način proširuju funkcionalnost nekog web sajta.
Međutim, ako klijent slučajno deaktivira neki od važnih plugin-a, to može u potpunosti onesposobiti rad web sajta.
Zato ćemo u ovom tekstu objasniti zašto i kako da sprečite da klijenti deaktiviraju WordPress plugin-e.
Zašto da sprečite klijente da deaktiviraju WordPress plugine?
Kao što smo već u uvodu pomenuli, ako vam je posao da pravite WordPress sajtove, verovatno imate listu neophodnih WordPress plugina koje instalirate na svakom sajtu. To mogu biti bezbednosni plugini koji štite klijenta od napada hakera i ubrizgavanja zlonamernog koda.
Takođe, možda čak koristite plugine da biste automatizovali ključne zadatke održavanja WordPress-a, poput redovnog pravljenja rezervnih kopija ili brisanja spam komentara.
Ako klijent slučajno deaktivira jedan od ovih plugina, to može učiniti njegov sajt ranjivim na napade ili uticati na njegov rad. U najgorem slučaju, to čak može potpuno pokvariti ili oboriti njegov sajt.
Iako to nije vaša greška, to i dalje predstavlja loše iskustvo za klijenta i može narušiti vašu reputaciju. Imajući to u vidu, hajde da vidimo kako možete sprečiti klijente da slučajno deaktiviraju plugine u WordPress-u.
Metoda 1: Korišćenje podrazumevanih korisničkih uloga u WordPress-u (bez plugina)
WordPress dolazi sa jednostavnim, ali moćnim sistemom upravljanja korisnicima, gde svaki korisnik ima različite ovlašćenja na osnovu dodeljene uloge.
Kada instalirate WordPress, automatski se kreiraju sledeće korisničke uloge (role):
- Administrator
- Editor
- Author
- Contributor
- Subscriber
Ove uloge imaju unapred definisane setove ovlašćenja koje možete dodeliti korisnicima vašeg WordPress sajta. Svaka uloga ima različite privilegije i mogućnosti u vezi sa upravljanjem sajtom i objavljivanjem sadržaja.
Evo šta koja od navedenih uloga podrazumeva i koja su joj prava dodeljena u WordPress-u:
Administrator ima potpunu kontrolu nad sajtom i može obavljati sve zadatke, uključujući upravljanje drugim korisnicima, instaliranje i brisanje dodataka, menjanje podešavanja teme, objavljivanje i uređivanje sadržaja itd. Ova uloga se obično dodeljuje vlasnicima sajta i IT administratorima.
Editor može upravljati svim aspektima sadržaja na sajtu. To uključuje objavljivanje, uređivanje i brisanje članaka, stranica, slika i drugog sadržaja koji su kreirali drugi korisnici. Editor nema pristup administrativnim funkcijama, kao što su upravljanje korisnicima ili promena podešavanja sajta. Ova uloga je pogodna za urednike i menadžere sadržaja.
Author ima ovlašćenja za objavljivanje i uređivanje sopstvenih članaka. Može kreirati, uređivati i brisati samo sadržaj koji je sam napravio. Autor nema pristup objavljivanju ili uređivanju tuđih članaka, kao ni pristup administrativnim funkcijama sajta. Ova uloga je pogodna za pojedince koji redovno doprinose sadržaju sajta.
Contributor može predlagati članke i druge vrste sadržaja, ali ne može ih objaviti direktno. Njegovi predlozi čekaju odobrenje od strane urednika ili administratora. Kontributor nema pristup administrativnim funkcijama i ne može uređivati tuđi sadržaj. Ova uloga je korisna za spoljne saradnike ili goste koji žele da doprinesu sadržaju sajta.
Subscriber ima najniže nivoe ovlašćenja. On može pristupiti samo svom profilu, komentarima i ostalim ličnim informacijama. Subscriber nema mogućnost objavljivanja sadržaja ili pristupa administrativnim funkcijama sajta. Ova uloga se često koristi za posetioce sajta koji žele da se registruju i prate određene sadržaje.
Kao što vidite, podrazumevano, samo administrator ima dozvolu da direktno upravlja plugin-ima, uključujući njihovo deaktiviranje.
Iz tog razloga, preporučujemo da, ukoliko je to neophodno, kreirate samo jedan administratorski nalog za svog klijenta, kako bi on ispred svoje kompanije mogao samostalno da obavlja većinu admin funkcija na svom sajtu.
Ujedno, gledajte da takav nalog napravite za korisnika koji ima malo većeg iskustva u radu sa WordPress-om i koji će biti obazriv u radu sa svojim sajtom. Za sve ostale korisnike kojima je neophodan pristup sajtu, a za koje nije neophodno da koriste sve funkcionalnosti sajta, možete kreirati naloge koji nisu administratorski.
Bez administratorskih prava, korisnik neće moći ni slučajno ni namerno da deaktivira plugine.
Možete koristiti bilo koju rolu za naloge koji nisu administratorski. Međutim, preporučujemo korišćenje Editor uloge, jer to korisnicima omogućava kreiranje, uređivanje, objavljivanje i brisanje sadržaja, uključujući sadržaj koji su kreirali drugi korisnici.
Na taj način će oni imati pristup svim važnim funkcionalnostima koje su im neophodne u svakodnevnom radu, ali neće imati pristup naprednim funkcijama WordPress-a.
Da biste kreirali nalog za jednog ili više klijenata, ulogujte se na svoj admin dashboard a zatim idite na opciju Users → Add New. Zatim možete uneti podatke o određenom korisniku, uključujući njegovo ime i email adresu.
Kada završite sa tim, otvorite padajući meni Role i izaberite rolu koju želite dodeliti korisniku, kao što je Administrator ili Editor.
Kada unesete sve podatke, kliknite na Add New User.
Da biste kreirali više naloga, jednostavno ponovite proces opisan gore.
Metoda 2: Pomoću Members plugina (kreiranje prilagođene uloge za korisnika)
Ugrađene WordPress uloge su dobre, ali nekada se ne mogu uklopiti sa potrebama korisnika i sa vašim potrebama.
Recimo, vama može biti potrebno da sprečite klijenta da deaktivira plugine, ali njemu to može ograničiti pristup nekim neophodnim funkcionalnostima, koje se ne odnose direktno na deaktivaciju plugina.
Uz to, ugrađene uloge možda nisu odgovarajuće za vaš web sajt. Na primer, Editor ne može deaktivirati plugine, ali istovremeno ne može dodavati nove korisnike ili instalirati WordPress teme, što nekim klijentima može predstavljati problem.
Ako podrazumevane korisničke uloge ne odgovaraju potrebama vašeg klijenta, možete sami kreirati svoju prilagođenu rolu. Ova uloga može imati tačno ona ovlašćenja i mogućnosti koje klijentu trebaju. Možete čak kreirati različite uloge za različite timove ili čak pojedinačne zaposlene.
Najlakši način za kreiranje prilagođenih uloga je korišćenje besplatnog plugina pod nazivom Members. Ovaj plugin vam omogućava da kreirate nove uloge, kao i da dodate i uklonite ovlašćenja za te uloge, uključujući mogućnost aktiviranja i deaktiviranja WordPress plugina.
Ovo ovlašćenje u potpunosti iz admin dashboard-a uklanja opciju Plugins (slika ispod)
Prvo instalirajte i aktivirajte Members plugin.
Nakon aktivacije, u admin dashboard-u idite na opciju Members → Add New Role.
Zatim u polje Enter Role name unesite željeni naziv uloge .
Ovo će biti vidljivo svima koji imaju pristup admin dashboard-u.
Nakon toga, potrebno je da dodelite ili ukinete određena ovlašćenja za tu rolu.
Leva kolona prikazuje sve vrste sadržaja kao što su blokovi i WooCommerce proizvodi. Jednostavno kliknite na tab i videćete sva ovlašćenja za tu vrstu sadržaja.
Sada možete čekirati box Grant ili Deny za svako ovlašćenje.
Da biste sprečili klijente da deaktiviraju plugine, kliknite na tab Plugins sa leve strane.
Zatim čekirajte box Deny u redu Activate Plugins.
Kada budete zadovoljni kako je konkretna uloga podešena, kliknite na Add Role.
Sada možete dodeliti ovu rolu bilo kom korisniku, prateći isti proces opisan u Metodi 1.
Metoda 3: Korišćenje prilagođenog PHP koda (sprečavanje klijenata da deaktiviraju određene plugine)
Ako želite sprečiti klijente da deaktiviraju sve plugine, možete koristiti jednu od dve navedene metode.
Međutim, ponekad želite zaštititi samo bitne plugine, dok istovremeno želite da klijentima ostavite slobodu da deaktiviraju i deinstaliraju manje važne plugine.
Najbolji način za zaštitu određenih plugina je dodavanje nekoliko linija prilagođenog koda u WordPress. To vam omogućava da potpuno uklonite opciju Deactivate za određene plugine.
Ovo je napredna metoda, pa je ne preporučujemo za početnike.
Napomena: Imajte na umu da i nakon primene ove metode klijenti i dalje mogu deaktivirati bilo koji plugin koristeći opciju Bulk Actions ili pomoću naprednog alata poput FTP-a ili phpMyAdmin-a. Međutim, uklanjanje opcije Deactivate znatno otežava klijentima da slučajno deaktiviraju bitan plugin.
Da biste započeli, morate znati ime datoteke plugina kao i gde se on nalazi na vašem serveru. Obično ovi fajlovi koriste ime plugina, uz ekstenziju .php i nalaze se unutar foldera nazvanog prema pluginu. Na primer, WooCommerce fajl se zove woocommerce.php i nalazi se unutar foldera woocommerce.
Ipak, važno je ovo dobro proveriti, posebno ako plugin ima dugo i komplikovano ime ili više reči. Na primer, ako koristite plugin pod nazivom SR Product 360° View, koji se koristi za dodavanje interaktivnih 360° slika u WordPress-u, njegov fajl se zove sr.php.
Možete proveriti ime fajla i lokaciju preko FTP klijenta, ili preko File Manager-a u cPanel dashboard-u vašeg hosting naloga.
Zatim idite na /wp-content/plugins/. Tu ćete videti sve različite plugine koji su instalirani na vašem sajtu.
Sada pronađite plugin koji želite da zaštitite i otvorite njegovu folder.
Nakon toga, pronađite fajl sa ekstenzijom .php.
Sada zapišite naziv foldera i .php fajla, jer ćete te podatke koristiti u svom kodu. Ukoliko želite da zaštitite više plugina, jednostavno ponovite ovaj postupak za svaki plugin koji želite da zaštitite.
Kada to završite, vreme je da dodate nekoliko linija prilagođenog koda na vaš web sajt. Neki tutorijali vas mogu upućivati da dodate kod u functions.php fajl vašeg sajta. Ako niste upoznati sa functions.php fajlom, pročitajte naš tekst Čemu sve služi functions.php fajl.
U ovom slučaju nije preporučljivo ubacivati kod u functions.php fajl, jer neke jednostavne greške mogu izazvati mnoge probleme sa drugim delovima sajta. Takođe na taj ćete izgubiti vaš prilagođeni kod prilikom prvog sledećeg ažuriranja WordPress teme.
Zato za ovu akciju preporučujemo da koristite plugin pod nazivom WPCode.
U pitanju je plugin koji koristi preko milion WordPress web sajtova. Omogućava vam jednostavno dodavanje prilagođenog CSS, HTML, PHP koda.
Prva stvar koju je potrebno da uradite je da instalirate i aktivirate WPCode plugin.
Nakon aktivacije, idite na opciju Code Snippets → Add Snippet.
Sada pređite mišem preko opcije Add Your Custom Code.
Kada se prikaže Use snippet, kliknite na tu opciju.
Započnite tako što ćete uneti naziv za prilagođeni odlomak koda. To može biti bilo šta što vam može pomoći da ga kasnije prepoznate u admin dashboard-u.
Zatim iz padajućeg menija Code Type odaberite opciju PHP Snippet.
Sada možete da dodate prilagođeni PHP kod. Tačan kod će se razlikovati u zavisnosti od dodataka koje želite da zaštitite, ali evo template-a koji možete koristiti:
add_filter( 'plugin_action_links', 'disable_plugin_deactivation', 10, 4 );
function disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {
if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
'wpforms/wpforms.php',
'woocommerce/woocommerce.php'
)))
unset( $actions['deactivate'] );
return $actions;
}
Ovaj primer odlomka koda onemogućava deaktivaciju za WPForms i WooCommerce plugine. Da biste zaštitili druge plugine, jednostavno zamenite wpforms/wpforms.php i woocommerce/woocommerce.php sa nazivima foldera i nazivima fajlova koje ste pribeležili u prethodnom koraku.
Da biste onemogućili deaktivaciju za više plugina, jednostavno ih dodajte u kod. Na primer:
'wpforms/wpforms.php',
'woocommerce/woocommerce.php',
'service-box/service-box.php'
)))
Nakon toga, idite do odeljka Insertion. WPCode može dodati vaš kod na različite lokacije, kao što su nakon svake objave, samo na frontendu ili samo u admin panelu.
Potrebno je samo da dodate PHP kod u WordPress admin dashboard, pa kliknite na opciju Auto Insert, a zatim otvorite padajući meni Location i odaberite opciju Admin only.
Nakon toga se pomerite na vrh ekrana i kliknite na toogle dugme pod nazivom Inactive kako biste ga promenili u Active.
Na kraju, kliknite na Save Snippet da biste aktivirali odlomak PHP koda.
Ako sada izaberete opciju Plugins sa leve strane menija, primetićete da je za plugine koje ste malopre zaštitili uklonjena opcija Deactivate.
Ako je u bilo kom trenutku potrebno da vratite Deactivate linkove za odeđene plugine, možete onemogućiti odlomak koda za njih. Zato je naša preporuka da za svaki plugin na vašem sajtu, kreirate zasebni odlomak koda, jer kada zatreba da vratite opciju deaktiviranja, lakše ćete to uraditi kada ste ih odvojeno zaštitili.
Da biste ponovo omogućili deaktivaciju nekog plugina jednostavno idite na Code Snippets → Code Snippet i kliknite toogle dugme pored tog odlomka koda, da ga prebacite iz plave boje (omogućen) u sivu boju (onemogućen).
Sada možete deaktivirati ove plugine odlaskom na opciju Plugins.
Takođe možete deaktivirati zaštićene plugine koristeći phpMyAdmin ili FTP klijent. Ovo može biti dobro rešenje ako želite da uklonite određeni plugin, ali ne želite da potpuno onemogućite odlomak koda i time ostavite sve vaše zaštićene plugine ranjivim.
Zaključak
U ovom tekstu smo vam predstavili metode za upravljanje pristupom i dozvolama korisnika na WordPress sajtu kako biste ih sprečili da slučajno ili namerno deaktiviraju plugin-ove. Preporučujemo da uvek kreirate jedan administratorski nalog za klijenta, koji će imati ovlašćenja za upravljanje pluginovima, dok ostali korisnici mogu imati naloge koji nisu administratorski.
Takođe, objasnili smo i kako da koristite prilagođen PHP kod, u slučaju kada treba da onemogućite deaktivaciju samo određenih plugin-ova. Važno je napomenuti da ova metoda zahteva naprednije poznavanje WordPress-a i osnovno poznavanje koda, pa se ne preporučuje početnicima i korisnicima sa manje iskustva.
Nenad Mihajlović