در بعضی مواقع زمانی که پلاگین های ما فعال ، غیر فعال و یا حذف میشوند نیاز است که ما کد هایی را اجرا کنیم. به طور مثال زمانی که در پلاکین خود یک پست تایپ تعریف میکنیم نیاز است تا پیوند های یکتای ما فقط یک بار فلاش شود و ما این عملیات را میتوانیم در رویداد فعال سازی اضافه کنیم تا فقط یک بار آن هم زمانی که افزونه فعال میشود اجرا شود.
زمانی که افزونه را بارگزاری کرده ایم عبارتی به اسم فعال سازی برای ما ظاهر میشود. در این زمان میتوانیم که های خود را توسط هوک register_activation_hook اجرا کنیم. این هوک ۲ ورودی دریافت میکند اول آدرس فایل پلاگین جاری را دریافت میکند که ما توسط دستور __FILE__ آن را برای هوک مشخص کردیم و دوم نام فانکشنی که کد های ما داخل آن است.
function wpti_activation_myplugin(){
محل نوشت کد های ما
}
register_activation_hook(__FILE__,'wpti_activation_myplugin');
زمانی که افزونه ای را غیرفعال میکنیم هوک register_deactivation_hook اجرا میشود تا دستورات مد نظر ما اجرا شود. مثلا همانطور که در مثال بالا در خصوص پست تایپ ها گفتیم فرض کنید افزونه ما پست تایپی را اصافه کرده ما در رویداد فعال سازی یک بار پیوند های یکتای خود را فلاش کردیم تا به درستی کار کند حال زمانی که میخواهیم افزونه غیر فعال شود و پست تایپ ها حذف شوند باید یک بار دیگر پست تایپ های خود را فلاش کنیم این رویداد زمان خوبی برای این کار میباشد. این هوک نیز ۲ ورودی دریافت میکند اول آدرس فایل پلاگین جاری را دریافت میکند که ما توسط دستور __FILE__ آن را برای هوک مشخص کردیم و دوم نام فانکشنی که کد های ما داخل آن است.
function wpti_deactivation_myplugin(){
محل نوشت کد های ما
}
register_deactivation_hook(__FILE__,'wpti_deactivation_myplugin');
زمانی که افزونه خود را غیرفعال کرده ایم و دیگر نمیخواهیم آن را فعال کنیم پس آن را حذف میکنیم. در این زمان فایل uninstall.php که در فولدر افزونه ایجاد کردیم اجرا میشود. به طور مثال اگر پلاگین ما جدولی به دیتا بیس اضافه کرده باشد یا آپشنی به آپشن های وردپرس اضافه کرده باشد و یا … ، در زمان حذف پلاگین ما باید این تغییرات را به حالت اولیه بازگردانیم مثلا جدولی که به دیتابیس اضافه کردیم پاک کنیم. بهترین مکان و زمان برای این کد ها را فایل uninstall.php برای ما محیا میکند. در زمان حذف پلاگین، وردپرس به صورت خودکار داخل پوشه پلاگین را جستجو میکند تا ببیند فایلی تحت عنوان uninstall.php وجود دارد یا خیر در صورتی که وجود داشته باشد آن را اجرا میکند.
if (!defined('WP_UNINSTALL_PLUGIN')) {
die;
}