Ana Sayfa » »
Ağu
4
2013

WordPress Eklentimiz İçin Uninstall (Kaldırma) Özelliği Ekleme

WordPress eklentilerinin bazıları ilk etkinleştirildiklerinde ya da kullanıldıkça WordPress veritabanına eklemeler, çıkarmalar yapabiliyorlar. Bu eklentileri etkisizleştirdiğinizde, hatta sildiğinizde bu artıklar sitede olduğu gibi kalıyor. Halbuki WordPress 2.7 sürümünden bu yana eklenti yazarlarına eklentilerini uninstall (kaldırma) işlemi yapabilmeleri için gerekli alt yapıyı sunuyor. Eğer eklentiniz veritabanında işlem yapıyorsa siz de bu özellikten yararlanmalısınız.

Bu özelliği eklentinize eklemek için iki yöntemden birini kullanabilirsiniz.

1. Yöntem: uninstall.php Dosyası Oluşturmak

En basit yöntem olan bu yöntemde eklentinizin klasöründe uninstall.php adında bir dosya oluşturmanız ve içerisine gerekli temizleme kodlarını eklemeniz yeterli. Bunu yaptığınızda, eklentinizi kullanan site sahibi, eklentinizi silmek istediğinde aşağıdaki resimde gösterdiğim verisini sil uyarısı ortaya çıkacak ve devam edildiğinde hem dosyalar silinecek hem de uninstall.php dosyasında belirttiğiniz veritabanında temizlik yapan kodlarınız da çalıştırılacak.

Tabi ki bu uninstall.php dosyasını sadece WP'nin çalıştırmasını sağlamak için dosyamızın başına küçük bir kontrol satırı eklememiz gerekecek. Örneğin eklentiniz wp_options tablosuna add_options() fonksiyonu ile bir ayar bilgisini kaydetmiş olsun. Eklentiniz silindiğinde bu seçeneği de sildirmek istiyorsanız, oluşturacağınız uninstall.php dosyasının içeriği şöyle olmalı.

//eklentinin veritabanı artıklarını temizle
if( !defined( 'ABSPATH') && !defined('WP_UNINSTALL_PLUGIN') ) exit();

delete_option('eklentinizin_ayar_secenegi');
//ve diğer temizleme kodlarınız

İkinci satırdaki kod ile uninstall.php dosyasının WordPress içerisinden çağrıldığını ve çağrılma sebebinin kaldırma işlemi olduğunu kontrol eder, eğer dosya doğrudan çağrılmışsa exit() fonksiyonu ile script sonlandırılacaktır. Bu satırın altına bütün veritabanı temizlik kodlarını yazarak, kaldırma işlemini tamamlamış olursunuz. Eklentiniz kendisi için bir tablo oluşturmuşsa bunu da kaldıracak kodları yine yazmanız gerekecek.

2. Yöntem: uninstall Kancasını Kullanmak

Bu yöntemde uninstall_hook denilen bir kancaya eklentimiz içerisinde tanımladığımız temizleme işlemlerini gerçekleştiren fonksiyonumuzu göstereceğiz. Böylece site sahibi eklentiyi silmek istediğinde bu fonksiyonumuz çalışacak ve gerekli silme işlemlerini gerçekleştirecektir. Ancak açıkçası bu yöntemi kullanmanızdansa 1. yöntemi kullanmanızı tavsiye ediyorum.

Bu yöntemi kullanmak için eklentiniz içerisinde aşağıdaki şekilde, uninstall işlemi için kancaya bir fonksiyonu tanıtmanız ve fonksiyon içerisinde gerekli silme işlemlerini gerçekleştirmeniz yeterli.

 if ( function_exists('register_uninstall_hook') ) register_uninstall_hook(__FILE__, 'eklenti_artiklarini_sil');

function eklenti_artiklarini_sil() {
 delete_option('eklentinizin_ayar_secenegi');
//ve diğer temizleme kodlarınız
}

Gördüğünüz gibi çok kolay bir şekilde eklentimizin, silindiğinde ardında hiçbir artık bırakmamasını sağlamak mümkün. Keşke tüm eklenti sahipleri bu yöntemle, eklentilerini sildiğimizde artıklarını temizleseler de bizi phpmyadmin kullanarak elle temizlik yapma derdinden kurtarsalar.

Thanks jacopsantos

Bu yazımı beğendiyseniz, bu kategoride yer alan Şifreli Functions.php Dosyalı Temalar İçin Çözüm Önerisi başlıklı Eklenti, functions.php ve WordPress konularında bilgi veren bir önceki yazımı da okumanızı tavsiye ederim.

Yorumunu Yaz

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yukarı Çık