register_deactivation_hook ( string $file, callable $function )
توضیحات
زمانی که یک پلاگین در ورپرس غیرفعال میشود، یک هوک به نام ‘deactivate_PLUGINNAME’ در اکشن فراخوانی میشود.
در فراخوانی این هوک باید نام پلاگین به جای کلمه PLUGINNAME جایگزین شود، همچنین می توانید آدرس دایرکتوری که پلاگین در آن قرار دارد را به صورت اختیاری در کنار نام پلاگین قرار دهید. به عنوان مثال اگر پلاگینی داریم که در مسیر زیر قرار دارد
wp-content/plugins/sampleplugin/sample.php
مدل نوشتن هوک غیرفعال کردن افزونه به شکل زیر میتواند باشد.
deactivate_sampleplugin/sample.php
اگر پلاگین فقط یک فایل داشته باشد به صورت پیش فرض مسیر نصب پلاگین wp-content/plugins/sample.php در نظر گرفته میشود؛ در این صورت برای فراخوانی هوک غیرفعال سازی کافی است deactivate_sample.php فراخوانی شود.
-
پارامترها:
file: این پارامتر برای دریافت نام پلاگین و مسیر پلاگین میباشد، این پارامتر متنی و الزامی است.
function: این پارامتر برای دریافت نام تابعی است که در آن فعالیتهای که میخواهید در زمان غیرفعال کردن افزونه انجام شود را باید بنویسید.
سورس تابع:
File: wp-includes/plugin.php
function register_deactivation_hook( $file, $function ) { $file = plugin_basename( $file ); add_action( 'deactivate_' . $file, $function ); }
مثال:
اگر شما یک تابع به اسم myplugin_deactive() داشته باشید و پلاگین شما در مسیر wp-content/plugins/myplugin.php
یا wp-content/plugins/myplugin/myplugin.php قرار داشته باشد کد برای غیرفعال کردن افزونه به شکل زیر میباشد.
register_deactivation_hook( __FILE__, 'myplugin_deactivate' );
این هوک تابع myplugin_deactivate() در زمان غیرفعال کردن پلاگین فراخوانی و دستورات آن انجام میشود.
یکی از کارهای که شما میتوانید در زمان غیرفعال کردن پلاگین انجام دهید، پاکسازی دیتابیس میباشد که کمک شایانی به بهینه کردن دیتابیس میکند.