Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. WordPress
Code

WordPress एडमिन नोटिस परसिस्टेड: भाग 4

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Persisted WordPress Admin Notices.
Persisted WordPress Admin Notices: Part 3

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

इस श्रृंखला में अब तक, हमने लगातार WordPress एडमिन नोटिस को डिसमिस करने के दो अलग-अलग तरीकों को शामिल किया है। हम आपके एडमिन नोटिस को स्थायी रूप से डिसमिस करने के लिए दो और विशिष्ट मेथड्स को देखकर ट्यूटोरियल श्रृंखला के इस चौथे और अंतिम भाग में उस पर निर्माण करेंगे। हम अपने स्वयं के कस्टम एडमिन नोटिस टाइप्स को बनाने और आइकन जैसे सजावट जोड़ने के तरीके को दिखाकर चीजों को बंद कर देंगे।

स्टिकी एडमिन नोटिस

हम पहले ही जानते हैं कि एक एडमिन नोटिस कैसे डिस्प्ले किया जाए जिसे डिसमिस किया जा सकता है। हमें बस इतना करना है कि कंटेनिंग div एलिमेंट में is-dismissible CSS क्लास जोड़ें। हालांकि, यह केवल अस्थायी है और केवल वर्तमान पेज के लिए नोटिस डिसमिस कर देगा। जैसे ही पेज पुनः लोड हो जाता है, यह फिर से दिखाई देता है।

इसे स्थायी रूप से डिसमिस करने के लिए अब तक हमने जो देखा है उससे अधिक कोड शामिल है, लेकिन इसे लागू करना बहुत मुश्किल नहीं है। चलो एक नजर डालते हैं की क्या क्या शामिल है, एक ओवरव्यू के साथ शुरू करते हैं।

हम अपने एडमिन नोटिस की डिस्प्ले स्टेटस को स्टोर करने के लिए एक कस्टम ऑप्शन का उपयोग करेंगे। प्लगइन एक्टिवेशन पर, यह ऑप्शन बनाया/अपडेट किया जाएगा और true पर सेट किया जाएगा। एडमिन नोटिस तभी डिस्प्ले होगा जब ऑप्शन वर्तमान में true है।

इस मेथड की के Ajax का उपयोग कर रही है ताकि हमें डिसमिस बटन पर क्लिक करने पर false ऑप्शन सेट करने की अनुमति मिल सके। एक बार सफलतापूर्वक false सेट हो जाने पर, कंडीशनल कोड जो ऑप्शन स्टेटस की जांच करता है, विफल हो जाएगा, और एडमिन नोटिस अब डिस्प्ले नहीं होगा।

आइए एडमिन नोटिस स्वयं जोड़कर शुरू करें, जो शुरू करने के लिए एक सादा नोटिस होगा। Gwyer_Dismissible_Admin_Notices::init() में, एक नया add_action कॉल जोड़ें:

फिर उसी क्लास में dismiss_admin_notice() कॉलबैक फ़ंक्शन जोड़ें:

यह एक एडमिन नोटिस जोड़ता है जो केवल प्लगइन एडमिन पेज पर डिस्प्ले होता है और जो हमने पिछले ट्यूटोरियल में देखा है उससे बहुत समान है। यहां केवल मामूली अंतर यह है कि हमने एडमिन नोटिस div कंटेनर में एक CSS ID भी जोड़ा है। इसका उपयोग विशेष रूप से उस एडमिन नोटिस को लक्षित करने के लिए किया जाएगा जिसमें हम रुचि रखते हैं।

Standard admin notice with custom CSS ID

हमें Ajax कॉल के काम करने के लिए JavaScript कोड जोड़ने की आवश्यकता होगी, इसलिए admin-notices प्लगइन फोल्डर दे रूट में एक js फ़ोल्डर जोड़ें और अंदर admin-notices.js नामक फ़ाइल बनाएं। कंसोल संदेश को आउटपुट करके ठीक से लोड होने का परीक्षण करने के लिए नई फ़ाइल में कोड जोड़ें।

Gwyer_Plugin_Options::init() में, हमारी स्क्रिप्ट फ़ाइल को एनक्यू करने के लिए एक नया add_action कॉल जोड़ें:

हम केवल इस JavaScript फ़ाइल को प्लगइन ऑप्शन पेज पर लोड करना चाहते हैं, इसलिए हमें इसे कण्डीशनली लागू करने का एक तरीका चाहिए। हम जांच करके यह कर सकते हैं कि वर्तमान में हम किस एडमिन पेज पर देख रहे हैं कि यह हमारे प्लगइन ऑप्शन पेज है या नहीं।

हम एक क्लास प्रॉपर्टी में add_options_page() के वापसी वैल्यू को संग्रहीत करके हमारे प्लगइन ऑप्शन पेज पर एक हैंडल प्राप्त कर सकते हैं। हमें पहले इस वैल्यू की कोई आवश्यकता नहीं थी, इसलिए हमने वापसी वैल्यू को संग्रहीत किए बिना add_options_page() को बुलाया।

Gwyer_Plugin_Options में एक क्लास प्रॉपर्टी जोड़ें:

फिर, create_admin_menu_page() में, हैंडल को हमारे प्लगइन ऑप्शन पेज पर संग्रहीत करने के लिए इस नई प्रॉपर्टी का उपयोग करें:

हम अंततः हमारी JavaScript फ़ाइल को एनक्यूयू कर सकते हैं ताकि यह केवल प्लगइन ऑप्शन पेज पर लोड हो:

अगर सब ठीक हो जाए तो आपको एक admin-notices.js loaded! संदेश ब्राउज़र कंसोल पर आउटपुट होगा।

Admin notice JavaScript loaded

निम्न में admin-notices.php में JavaScript कोड अपडेट करें:

यहां, हम an1 CSS ID पर एक क्लिक इवेंट के लिए सुन रहे हैं जिसे हमने पहले हमारे एडमिन नोटिस में जोड़ा था। जैसे ही इसे क्लिक किया जाता है, एक Ajax रिक्वेस्ट निकाल दिया जाता है। आइए उस रिक्वेस्ट को अगले संभाल लें।

Gwyer_Dismissible_Admin_Notices::init() में, एक नया add_action कॉल जोड़ें:

एक बार display_dismissible_admin_notice Ajax रिक्वेस्ट फायर होने पर यह कॉलबैक फ़ंक्शन चलाएगा। याद रखें कि मूल रूप से यह हमारे Ajax रिक्वेस्ट में data.action प्रॉपर्टी के रूप में परिभाषित किया गया था।

अब Gwyer_Dismissible_Admin_Notices पर display_dismissible_admin_notice कॉलबैक फ़ंक्शन जोड़ें:

अपने परिवर्तनों को सेव करें, प्लगइन ऑप्शन पेज को पुनः लोड करें, और एक्शन में Ajax रिक्वेस्ट देखने के लिए एडमिन नोटिस डिसमिस बटन पर क्लिक करें!

The Ajax request in action

अगर रिक्वेस्ट सफल हुआ तो आपको ब्राउज़र कोंसने में एक Processing Ajax request... DONE! का मैसेज दिखाई देगा।

पहेली का अंतिम भाग एक कस्टम ऑप्शन को शुरू में true पर सेट करना है, लेकिन तब डिसमिस बटन पर क्लिक होने पर false पर सेट किया जाता है। फिर, जब प्लगइन ऑप्शन पेज लोड होता है, तो एडमिन नोटिस केवल तब डिस्प्ले होता है जब कस्टम ऑप्शन वैल्यू true है।

Gwyer_Dismissible_Admin_Notices::init() में, register_activation_hook() में दूसरी कॉल जोड़ें:

और क्लास में create_custom_option कॉलबैक फ़ंक्शन जोड़ें:

अब, जब प्लगइन एक्टिवेट है, तो gwyer-dismiss नामक एक कस्टम ऑप्शन बनाया जाता है और true पर सेट किया जाता है।

Ajax रिक्वेस्ट फायर होने पर हमारे कस्टम ऑप्शन को अपडेट करने के लिए display_dismissible_admin_notice() अपडेट करें:

अब जो कुछ भी करने के लिए बाकी है, वह कस्टम ऑप्शन के वैल्यू की जांच करने के लिए dismiss_admin_notice() अपडेट करें और केवल true पर सेट होने पर एडमिन नोटिस रेंडर करें।

हमारे द्वारा जोड़े गए कोड का परीक्षण करने के लिए प्लगइन को निष्क्रिय और पुनः एक्टिवेट करें। प्लगइन ऑप्शन पेज पर जाएं, एडमिन नोटिस को डिसमिस करें, और पेज को रीफ्रेश करें। नोटिस अब दिखाई नहीं देनी चाहिए। वाह!

चूंकि प्लगइन एक्टिवेट होने पर हर बार कस्टम ऑप्शन true पर सेट किया जाता है, इसलिए आप जितनी बार चाहें डिसमिस एडमिन नोटिस का परीक्षण करने के लिए उपरोक्त चरणों को दोहरा सकते हैं।

चीजों को सरल रखने के लिए, यह कस्टम एडमिन नोटिस ऑप्शन सेट करने के लिए Ajax रिक्वेस्ट का उपयोग करने का एक बेयर-बोन्स उदाहरण था। व्यावहारिक रूप से, आप न्यूनतम सुरक्षा उपाय के रूप में Ajax रिक्वेस्ट को validate करने के लिए एक nonce (number used once) वैल्यू का उपयोग करना चाहेंगे।

यह केवल एक एडमिन नोटिस को स्थायी रूप से डिसमिस करने के लिए बहुत काम का था, लेकिन अंतिम प्रभाव अच्छी तरह से काम करता है और ऐसा कुछ है जिसका उपयोग आप अपने प्लगइन में अच्छे प्रभाव के लिए कर सकते हैं।

कस्टम एक्शन एडमिन नोटिस डिसमिसल

अब एडमिन नोटिस को डिसमिस करने के लिए थोड़ा अलग तरीका देखने का समय है। यह एक अनगिनत प्रकार का एडमिन नोटिस है जो सभी एडमिन स्क्रीन पर डिस्प्ले होता है और कुछ कार्यवाही किए जाने तक इसे डिसमिस नहीं किया जा सकता है।

नोट: इस मेथड का सावधानी से उपयोग करें या आप अपने प्लगइन यूज़र्स को बहुत जल्दी से अलग करने का जोखिम उठाएंगे!

हमारे उदाहरण में हम जिस विशिष्ट क्रिया पर ध्यान केंद्रित करेंगे, वह एक आवश्यक प्लगइन या प्लगइन की सूची इनस्टॉल और एक्टिवेट होने तक एक एडमिन नोटिस डिस्प्ले करना होगा।

पिछली मेथड के विपरीत जहां हमें स्थायी सूचनाओं को स्थायी रूप से डिसमिस करने के लिए हुक्स के माध्यम से कूदना पड़ा, इस मेथड का समाधान ताज़ा सरल है!

सबसे पहले, Gwyer_Dismissible_Admin_Notices::init() में सभी फ़ंक्शन कॉलों पर कमेंट करें। फिर, एक नया add_action() फ़ंक्शन जोड़ें:

और कॉलबैक को निम्नानुसार परिभाषित करें:

यही सब है इसके लिए! मैंने तुमसे कहा था कि यह आसान होगा, है ना?

हैलो डॉली प्लगइन इनस्टॉल और एक्टिवेट होने पर परीक्षण करने के लिए इस समय अलग-अलग चीज हमने is_plugin_active() WordPress फ़ंक्शन का उपयोग करना था। यदि नहीं, is_plugin_active() false वापसी करेगा, और हमारी एडमिन सूचना डिस्प्ले की जाएगी।

Example of a nag admin notice

एडमिन नोटिस को दूर करने के लिए हैलो डॉली प्लगइन को एक्टिवेट करने का प्रयास करें।

यह सिंगल प्लगइन के लिए अच्छी तरह से काम करता है, लेकिन क्या होगा यदि आप यूज़र्स को अधिक प्लगइन एक्टिवेट करने के लिए याद दिलाना चाहते हैं? हैलो डॉली प्लगइन जानकारी में हार्ड-कोडिंग के बजाय, हम अपने आवश्यक प्लगइन को वाइट-लिस्ट में लाने के लिए एक ऐरे बना सकते हैं।

Install_plugin_to_dismiss_admin_notice() को इसके साथ बदलें:

आवश्यक प्लगइन्स अब एक ऐरे में संग्रहीत हैं जो यह जांचने के लिए loop करेगा कि प्रत्येक प्लगइन एक्टिवेट किया गया है या नहीं। किसी भी प्लगइन के लिए वर्तमान में एक्टिवेट नहीं है, नाम को $require_activating ऐरे में जोड़ा गया है जिसे एडमिन नोटिस के माध्यम से आवश्यक प्लगइन नामों की अल्पविराम से अलग सूची के रूप में आउटपुट किया जाता है।

List of required plugins

कस्टम एडमिन नोटिस

समाप्त करने से पहले, चलिए अपने स्वयं के कस्टम एडमिन नोटिस टाइप बनाकर थोड़ा मजा लें। आइए देखते हैं कि कुछ कस्टम एडमिन नोटिस टाइप्स को कैसे जोड़ना है। अब तक आप चार अंतर्निहित एडमिन नोटिस से पूरी तरह परिचित होंगे, WordPress डिफ़ॉल्ट रूप से प्रदान करता है, लेकिन हमारे खुद के बनाये हुए के साथ मुश्किल नहीं है।

सबसे पहले, हालांकि, Gwyer_Dismissible_Admin_Notices::init() में सभी फ़ंक्शन कॉलों पर कमेंट करें ताकि हम एक स्वच्छ स्लेट पर शुरुआत कर सकें।

हमें हमारे कस्टम एडमिन नोटिस टाइप्स के लिए CSS जोड़ने की आवश्यकता होगी, इसलिए रूट प्लगइन फ़ोल्डर में एक CSS फ़ोल्डर जोड़ें, और अंदर admin-notices.css नामक फ़ाइल बनाएं। सभी एडमिन पेजेज पर इसे लागू करने के लिए, Gwyer_Plugin_Options::init() में एक नया add_action कॉल जोड़ें।

फिर, enqueue_styles() कॉलबैक के लिए, इस मेथड को एक ही क्लास में जोड़ें:

अब चलिए अपने कस्टम एडमिन नोटिस को आउटपुट करने के लिए एक नई मेथड सेट अप करें। Gwyer_Admin_Notices::init() में जोड़ें:

फिर कस्टम एडमिन नोटिस की एक सीरीज डिस्प्ले करने के लिए कॉलबैक जोड़ें:

अंत में, हमारे कस्टम एडमिन नोटिस को स्टाइल करने के लिए admin-notices.css पर CSS जोड़ें:

परिवर्तनों को सेव करने के बाद, हमारे कस्टम एडमिन नोटिस देखने के लिए किसी भी एडमिन पेज को लोड करें।

Some examples of custom admin notices

परिणामों के आधार पर, शायद कस्टम एडमिन नोटिस का उपयोग करना एक अच्छा विचार है, अन्यथा आप उन्हें garish दिखने का जोखिम उठाएंगे।

मैं इस्तेमाल किए गए कस्टम CSS के बारे में विवरण में नहीं जाऊंगा। यह सिर्फ थोड़ी मस्ती के लिए है, और अधिकांश स्टाइल सुंदर सेल्फ-एक्सप्लनेटोरी है।

हमने सुविधा के लिए हमारे कस्टम एडमिन नोटिस के लिए dashicons फ़ॉन्ट का उपयोग किया क्योंकि वे डिफ़ॉल्ट रूप से WordPress एडमिन में उपलब्ध हैं। लेकिन आप अतिरिक्त सजावट के लिए अपने पसंदीदा आइकन इम्पोर्ट और उपयोग कर सकते हैं।

कोड को खुद आज़माएं

इस ट्यूटोरियल श्रृंखला से सभी कोड को डाउनलोड करने के लिए WordPress प्लगइन में लपेटा गया है। कोड पर नज़र डालें, इसे बढ़ाएं, और एडमिन नोटिस को डिस्प्ले करने (और डिसमिस करने) के नए तरीकों को लागू करें। यदि आप कुछ अच्छा बनाते हैं तो मुझे कमैंट्स में मुझे बताना सुनिश्चित करें! मुझे यह देखना अच्छा लगेगा कि आप किसके साथ आते हैं।

निष्कर्ष

इस चार भाग ट्यूटोरियल श्रृंखला में मुझसे जुड़ने के लिए धन्यवाद। उम्मीद है कि अब आप अपने स्वयं के प्रोजेक्ट्स में एडमिन नोटिस को कैसे कार्यान्वित करेंगे इस पर बहुत अधिक विश्वास करेंगे।

हमने WordPress एडमिन नोटिस के कई अलग-अलग पहलुओं को कवर किया है, जिसमें उन्हें स्थायी रूप से डिसमिस करने के कई तरीके शामिल हैं, जो कस्टम कोड के बिना संभव नहीं है।

अपनी खुद की कस्टम एडमिन नोटिस बनाना बहुत आसान है, लेकिन व्यावहारिक रूप से आप उन्हें अपनी प्रोजेक्ट्स में कम से कम उपयोग करना चाहेंगे। अधिकतर समय एक कंसिस्टेंट यूजर अनुभव के लिए डिफ़ॉल्ट WordPress स्टाइल्स को रखना सर्वोत्तम होता है।

WordPress एक अविश्वसनीय रूप से एक्टिव अर्थव्यवस्था है। थीम, प्लगइन्स, लाइब्रेरी, और कई अन्य उत्पाद हैं जो आपकी साइट और प्रोजेक्ट बनाने में आपकी सहायता करते हैं। प्लेटफॉर्म की ओपन-सोर्स प्रकृति भी इसे एक शानदार ऑप्शन बनाती है जिससे आप अपने प्रोग्रामिंग कौशल को बेहतर बना सकते हैं। जो भी मामला है, आप देख सकते हैं कि हमारे पास Envato Market में क्या उपलब्ध है।

और प्लगइन डाउनलोड करने और कोड के साथ खेलना मत भूलना। सभी टुकड़ों को एक साथ फिट करने के तरीके से अधिक परिचित होने का यह एक शानदार तरीका है। और कृपया नीचे दी गई कमैंट्स के माध्यम से ट्यूटोरियल पर अपने विचारों को बताएं।

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.