वर्डप्रेस यूजर को कैसे बैन करें

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


चरण 1: प्लगइन बनाएं

एक बार फिर, यह बहुत जटिल है, आपको केवल “प्रतिबंध-उपयोगकर्ता” नामक “wp-content / plugins” के साथ एक नया फ़ोल्डर बनाना है। इस फ़ोल्डर में, “ban-users.php” नामक एक नई फ़ाइल बनाएं, इसे इस कोड को पेस्ट करें:

चरण 2: उपयोगकर्ता प्रोफ़ाइल पृष्ठ पर एक चेकबॉक्स जोड़ें

पहली चीज जो हमें करने की ज़रूरत है वह है प्रत्येक उपयोगकर्ता प्रोफ़ाइल संस्करण पृष्ठ पर एक चेकबॉक्स जोड़ना। जब आप इस चेकबॉक्स की जाँच करेंगे, तो यह एक उपयोगकर्ता मेटा विकल्प को संचित करेगा जो यह इंगित करेगा कि उपयोगकर्ता को अब इस वेबसाइट पर लॉगिन करने की अनुमति नहीं है.

यहाँ कोड है:

/ **
* व्यवस्थापक init
*
* @ अतिरिक्त जनता
* @ १.०
* @ व्रत शून्य
* /
समारोह rc_admin_init () {

// उपयोगकर्ता प्रोफ़ाइल संपादित करें
add_action ('edit_user_profile', 'rc_edit_user_profile');
add_action ('edit_user_profile_update', 'rc_edit_user_profile_update');

}
add_action ('admin_init', 'rc_admin_init');

यह कोड केवल एक फ़ंक्शन के लिए एक कॉल बना रहा है जिसे हमें अभी बनाना है। यह फ़ंक्शन उपयोगकर्ता प्रोफ़ाइल पृष्ठ पर एक चेकबॉक्स जोड़ेगा.

/ **
* उपयोगकर्ता संस्करण पृष्ठ पर कस्टम चेकबॉक्स जोड़ता है
*
* @ अतिरिक्त जनता
* @ १.०
* @ व्रत शून्य
* /
फ़ंक्शन rc_edit_user_profile () {
अगर (current_user_can ('edit_users')) {
वापसी;
}

वैश्विक $ user_id;

// उपयोगकर्ता स्वयं को अक्षम नहीं कर सकता
$ current_user = wp_get_current_user ();
$ current_user_id = $ current_user-> ID;
अगर ($ current_user_id == $ user_id) {
वापसी;
}

// सक्षम होने पर जांचें
$ जाँच = जाँची गई (get_user_option ('rc_banned', $ user_id, false));

// डिस्प्ले चेकबॉक्स
गूंज '
प्रतिबंध उपयोगकर्ता
'; }

अब हमें फंक्शन की जरूरत है जो डेटाबेस में चेकबॉक्स के मान को बचाएगा:

/ **
* कस्टम चेकबॉक्स सहेजें
*
* @ अतिरिक्त जनता
* @ १.०
* @ व्रत शून्य
* /
फ़ंक्शन rc_edit_user_profile_update () {

अगर (current_user_can ('edit_users')) {
वापसी;
}

वैश्विक $ user_id;

// उपयोगकर्ता स्वयं को अक्षम नहीं कर सकता
$ current_user = wp_get_current_user ();
$ current_user_id = $ current_user-> ID;
अगर ($ current_user_id == $ user_id) {
वापसी;
}

// ताला
if (isset ($ _POST ['rc_ban']) && $ _POST ['rc_ban'] = 'on') {
rc_ban_user ($ user_id);
} और {// अनलॉक
rc_unban_user ($ user_id);
}

}

जैसा कि आप देख सकते हैं कि यह नया फ़ंक्शन दो अन्य कार्यों का उपयोग करता है: rc_ban_users () और rc_unban_users ()। उनके नाम बहुत स्पष्ट हैं, पहला डेटाबेस में इस तथ्य को संग्रहीत करेगा कि एक उपयोगकर्ता प्रतिबंध है, दूसरा उपयोगकर्ताओं को अनलॉक करेगा.

चरण 3: उपयोगकर्ताओं को प्रतिबंधित करें

अब rc_ban_users () फ़ंक्शन बनाने का समय है। इस फ़ंक्शन में हमें यह जांचने की आवश्यकता है कि क्या कोई मान पहले से संग्रहीत है, और यदि नहीं तो हमें मूल्य को संग्रहीत करने की आवश्यकता है। यही कारण है कि मैं एक फ़ंक्शन को कॉल करता हूं जिसे मैं बाद में वर्णन करूंगा: rc_is_user_banned ():

/ **
* प्रतिबंध उपयोगकर्ता
*
* @ अतिरिक्त जनता
* @ १.०
* @ व्रत शून्य
* /
फ़ंक्शन rc_ban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id);

// नवीनतम स्थिति
अगर ($ old_status) {
update_user_option ($ user_id, 'rc_banned', true, false);
}
}

चरण 4: उपयोगकर्ताओं को अन-प्रतिबंधित करें

निम्नलिखित फ़ंक्शन हमारे द्वारा बनाए गए के विपरीत है: हमें "अन-प्रतिबंध" उपयोगकर्ताओं को देने की क्षमता है:

/ **
* यू-प्रतिबंध उपयोगकर्ता
*
* @ अतिरिक्त जनता
* @ १.०
* @ व्रत शून्य
* /
फ़ंक्शन rc_unban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id);

// नवीनतम स्थिति
अगर ($ old_status) {
update_user_option ($ user_id, 'rc_banned', गलत, गलत);
}
}

चरण 5: क्या उपयोगकर्ता प्रतिबंधित है?

हमने rc_ban_users () और rc_unban_users () में देखा कि हम एक फ़ंक्शन का उपयोग करते हैं, जिसे rc_is_user_banned () कहा जाता है, यह जांचने के लिए कि कोई उपयोगकर्ता प्रतिबंधित है या नहीं। आइए इसे बनाएं:

/ **
* जांचता है कि क्या कोई उपयोगकर्ता पहले से ही प्रतिबंधित है
*
* @ अतिरिक्त जनता
* @ १.०
* @ व्रत शून्य
* /
फ़ंक्शन rc_is_user_banned ($ user_id) {
वापसी get_user_option ('rc_banned', $ user_id, false);
}

मूल रूप से, यह फ़ंक्शन केवल rc_ban_users () में सहेजे गए विकल्प का मान लौटाता है.

इस समय हमारे पास उपयोगकर्ता संस्करण पृष्ठ पर एक नया चेकबॉक्स है जो इस प्रकार होना चाहिए:

ban_users_1

अंतिम चरण प्रतिबंधित उपयोगकर्ताओं को लॉगिन करने से बचने के लिए एक फ़ंक्शन को लॉगिन फ़ॉर्म को हुक करना है.

चरण 5: प्रवेश करने के लिए प्रतिबंधित उपयोगकर्ताओं से बचें

ऐसा करने के लिए हमें "wp_authenticate_user" नामक एक वर्डप्रेस डिफ़ॉल्ट फ़िल्टर का उपयोग करने की आवश्यकता है। इस फ़िल्टर के लिए हम "rc_authenticate_user ()" नामक एक फ़ंक्शन को हुक करेंगे। यह फ़ंक्शन उपयोग करेगा WP_Error वर्ग.

/ **
* जांचें कि क्या लॉगिन प्रक्रिया के दौरान उपयोगकर्ता बंद है
*
* @ अतिरिक्त जनता
* @ १.०
* @ व्रत शून्य
* /
फ़ंक्शन rc_authenticate_user ($ उपयोगकर्ता) {

अगर (is_wp_error ($ उपयोगकर्ता)) {
$ उपयोगकर्ता वापस;
}

// यदि उपयोगकर्ता खाता प्रतिबंधित है तो त्रुटि लौटाएं
$ प्रतिबंधित = get_user_option ('rc_banned', $ उपयोगकर्ता-> आईडी, गलत);
अगर ($ प्रतिबंधित) {
नया WP_Error ('rc_banned', __) लौटाएंत्रुटि: यह उपयोगकर्ता खाता अक्षम है। ',' आरसी '));
}

$ उपयोगकर्ता वापस;
}

अब, हमें केवल फ़िल्टर जोड़ने की आवश्यकता है:

add_filter ('wp_authenticate_user', 'rc_authenticate_user', 1);

निष्कर्ष

हमने एक प्लगइन बनाया जो उपयोगकर्ता प्रोफ़ाइल संस्करण पृष्ठ पर एक चेकबॉक्स जोड़ता है। हमने चेकबॉक्स पर मान को संग्रहीत करने के लिए एक दूसरे फ़ंक्शन का उपयोग किया और हम एक उपयोगकर्ता को प्रतिबंधित करने के लिए एक वर्डप्रेस उपयोगकर्ता और दूसरे को अनलॉक करने के लिए एक फ़ंक्शन बनाते हैं। हमने यह जांचने के लिए एक छोटा फ़ंक्शन भी बनाया है कि कोई उपयोगकर्ता प्रतिबंधित है या नहीं। और हमने अंत में WP_Error WordPress mail class का उपयोग करके "wp_authenticate_user" फ़िल्टर के लिए एक फ़ंक्शन को झुका दिया.

यदि आपको यह ट्यूटोरियल पसंद आया है, तो आपको इस प्लगइन का प्रीमियम संस्करण पसंद आएगा: उपयोगकर्ता पहुँच प्रबंधक.

Github पर पूरा कोड डाउनलोड करें

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me