WP Plugin Activation Hook – Deactivation Hook

WP Plugin Activation Hook – जब हम Plugin Create करते हैं, तब WordPress API हमें तीन ऐसे Special API Functions Provide करता है, जिनका प्रयोग किसी Plugin को Activate, Deactivate व Delete करते समय किया जा सकता है।

जब किसी Plugin को WordPress Admin Panel में Activate किया जाता है, तो उस समय activate_PLUGINNAME नाम का Hook Fire होता है। यानी यदि हमारे Plugin का नाम CustomPlugin है और हमने हमारा Plugin /wp-contents/plugins/ Folder में CustomPlugin.php नाम की File में Create किया है, तो Admin Panel में इस Plugin को Activate करते समय activate_CustomPlugin नाम का Hook Fire होगा।

जबकि यदि हमारा Plugin WordPress के /wp-contents/plugins/ Folder में एक अलग Sub-Folder में हो, तो Fire होने वाले Hook का नाम Sub-Directory के नाम के साथ Specify होगा। यानी यदि हमारा Custom Plugin /wp-contents/plugins/ Folder में SamplePlugin नाम के Folder के अन्दर CustomPlugin.php नाम की File में Specified हो, तो Fire होने वाले Hook का नाम activate_SamplePlugin/CustomPlugin.php होगा।

register_activate_hook() Function इसी Hook का Wrapper है। यानी हम इस Function का प्रयोग हमारे Current Plugin के activate_PLUGINNAME Hook के स्थान पर कर सकते हैं। इस Function का Syntax निम्नानुसार होता है:

        register_activate_hook($file, $function)

इस Function में पहले Argument के रूप में हमें मुख्‍य Plugin File का Path Specify करना होता है। सामान्‍यत: इस Parameter के रूप में हम “__FILE__” Specify करते हैं, जो कि Current Plugin File को ही Represent करता है।

जबकि दूसरे Argument के रूप में हमें उस Callback Function का नाम Specify करना होता है, जिसे Plugin Registration के समय Fire होने वाले Hook यानी activate_PLUGINNAME Event के Response में Execute करना होता है।

सामान्‍यत: किसी भी Plugin के कुछ Default Options होते हैं, जिन्हें Set किए बिना वह Plugin Normal तरीके से काम नहीं कर सकता। इन Default Options का Setup करने के लिए इस Function को Use किया जाता है।

इसी तरह से जब हम Plugin Create करते हैं, तब वह Plugin किसी Particular WordPress Version से बाद के Versions पर ही Normal तरीके से काम करता है। इसलिए Version Testing का काम भी सामान्‍यत: इसी Function द्वारा किया जाता है, ताकि यदि हमारे Plugin को किसी Incompatible WordPress Version पर Install किया जा रहा हो, तो ये Event Fire होते ही इस बात का Message दिया जा सके कि Current Plugin उस Version के लिए उपयुक्त नहीं है। जैसे:

<?php
	register_activation_hook(__FILE__, 'pluginCompatibilityTest');
	function pluginCompatibilityTest(){
		global $wp_version;
		
		//Compare Current WordPress Version with 3.0
		if(version_compare($wp_version, "3.0", "<")){

			//Deactivate Current Plugin if Current WP version is below then 3.0
			deactivate_plugins(basename(__FILE__));
			
			//Display Error Message on the Plugin Installation Page
			wp_die("This plugin requires WordPress Version 3.0 or higher.");
		}
	}
?>

जब हम हमारे Current Plugin को Activate करते हैं, तो Plugin को Activate करते ही निम्न Function Execute होता है:

register_activation_hook(__FILE__, pluginCompatibilityTest);

ये Function Execute होते ही सबसे पहले pluginCompatibilityTest नाम के Event Handler Function को Execute करता है।

pluginCompatibilityTest() Function में सबसे पहले हमने निम्न Statement द्वारा $wp_version नाम के Global Variable को Declare किया है, क्योंकि इस Variable को WordPress की Core File में Declare किया गया है, जिसमें Current WordPress का Version Number Stored होता है। फिर हमने एक if Statement द्वारा Core PHP के version_compare() Function को Use किया है, जिसका प्रयोग Version Comparing करने के लिए किया गया है:

if(version_compare($wp_version, 3.0, <)){

इस Function में पहले Argument के रूप में Current WordPress Version Number होता है जबकि दूसरे Argument के रूप में हमने “3.0” Specify किया है तथा तीसरे Argument के रूप में हमने “<” Operator का प्रयोग किया है।

परिणामस्वरूप ये Function $wp_version < 3.0 होने की स्थिति में True Return करता है, जबकि यदि Current WordPress Version का मान 3.0 से ज्यादा हो, ये Function False Return करता है।

इस Function के True Return करने का मतलब यही है कि WordPress का Current Version हमारे 3.0 से कम है, जो इस बात का Indication है कि हमारे Plugin के Install होने के लिए Compatible नहीं है। परिणामस्वरूप WordPress Control इस if Statement Block में प्रवेश करता है, जहां उसे निम्न Statement प्राप्त होता है:

deactivate_plugins(basename(__FILE__));

ये Statement उस Plugin को Deactivate कर देता है, जिसका नाम इस Function में basename(__FILE__) Function द्वारा Return होता है। यानी ये Function Current Plugin को Automatically Deactivate कर देता है और हमें निम्नानुसार एक Error Message प्राप्त होता है:

WP Plugin Activation Hook - Deactivation Hook in Hindi

जिस तरह से किसी Plugin को Activate करते समय activate_PLUGINNAME Event Fire होता है और इसके Response में Wrapper Function register_activation_hook() Function को Use किया जाता है।

ठीक इसी तरह से हम किसी Plugin को Deactivate करते समय Fire होने वाले deactivate_PLUGINNAME Event यानी Hook के Wrapper Function register_deactivation_hook() को Use कर सकते हैं और किसी Plugin को Deactivate करते समय Perform किए जाने वाले Tasks को Perform कर सकते हैं। इस Function का Syntax भी Exactly register_activation_hook() Function के समान ही होता है और इसे समान प्रकार से ही Use भी किया जाता है। जैसे:

<?php
	register_deactivation_hook(__FILE__, 'resetPluginData');
		function resetPluginData(){
			//Reset Plugin to Default Values
		}
	}
?>
WordPress Plugin Development Tutorial
WordPress Internationalization

WordPress in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance WordPress in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Advance WordPress in Hindi | Page: 835 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Special Discount Offer

खरीदिए एक से ज्‍यादा EBooks, और पाईए ₹100 से ₹1200 तक का Extra Cash Discount

Discount Coupon Codes