मल्टीसाइट साइनअप प्रक्रिया को ट्वीक करना आसान बात नहीं है। अन्य प्रक्रियाओं के विपरीत, इसके साथ खेलने के लिए कई हुक हैं, लेकिन वे भारी अनुकूलन के लिए बहुत अच्छी तरह से एक साथ नहीं आते हैं, इसलिए मैं अपनी निराशा को समझता हूं।
अगर मैं सही ढंग से समझता हूं, तो यह जटिल नहीं है कि आप क्या चाहते हैं, हालांकि यह वर्डप्रेस के डिफ़ॉल्ट व्यवहार के बहुत कुछ किए बिना एक-चरणीय समाधान नहीं हो सकता है, मुख्यतः क्योंकि साइनअप (यानी जब आपका उपयोगकर्ता कस्टम जानकारी सबमिट करेगा) और सक्रियण ( (जब नया ब्लॉग वास्तव में बनाया जाएगा) अलग से होगा।
यहां एक बहुत ही मोटा कोड है जिसे आपको शुरू करने की आवश्यकता होगी। उम्मीद है कि यह आपको सही दिशा में आगे बढ़ाता है:
// Add text field on blog signup form
add_action('signup_blogform', 'add_extra_field_on_blog_signup');
function add_extra_field_on_blog_signup() { ?>
<label>An extra field</label>
<input type="text" name="extra_field" value="" />
<?php
}
// Append the submitted value of our custom input into the meta array that is stored while the user doesn't activate
add_filter('add_signup_meta', 'append_extra_field_as_meta');
function append_extra_field_as_meta($meta) {
if(isset($_REQUEST['extra_field'])) {
$meta['extra_field'] = $_REQUEST['extra_field'];
}
return $meta;
}
// When the new site is finally created (user has followed the activation link provided via e-mail), add a row to the options table with the value he submitted during signup
add_action('wpmu_new_blog', 'process_extra_field_on_blog_signup', 10, 6);
function process_extra_field_on_blog_signup($blog_id, $user_id, $domain, $path, $site_id, $meta) {
update_blog_option($blog_id, 'extra_field', $meta['extra_field']);
}
याद रखो:
- यदि आप प्लग-इन के माध्यम से इनपुट को फ़िल्टर करना चाहते हैं, तो मैं प्रदान किए गए विकल्पों को लॉक करने के लिए चुनिंदा इनपुट का उपयोग करने का दृढ़ता से सुझाव दूंगा;
- चूँकि कुछ फ़ील्ड आवश्यक हैं और पंजीकरण के दौरान सत्यापन के माध्यम से गुजरते हैं (न्यूनतम वर्ण, साइट के नाम, ब्लैक लिस्टेड नाम, इत्यादि के लिए वर्णों को अस्वीकृत), मैं पहले इनपुट पर मूल्य को पॉप्युलेट करते समय $ _REQUEST वैश्विक पर आपके अतिरिक्त क्षेत्र की जाँच करने का सुझाव दूंगा। फ़ंक्शन, ताकि उपयोगकर्ता अपने इनपुट को उस स्थिति में न खोए जब उसने वर्डप्रेस के डिफ़ॉल्ट फ़ील्ड का मान ठीक करने के लिए वापस भेजा है;
- आप स्पष्ट रूप से अंतिम फ़ंक्शन के विचार को बदल सकते हैं जो भी आपके प्लग-इन के अनुरूप है, लेकिन फ़ील्ड का मूल्य अब उस अंतिम फ़ंक्शन के भीतर से उपलब्ध होगा, जो आपको अपने रास्ते में मदद करनी चाहिए।
अंतिम नोट पर, यदि आप बाद में सभी मौजूदा ब्लॉगों से सभी 'extra_field' मूल्यों को संसाधित करना चाहते हैं, तो मैं एक मेज पर जानकारी संग्रहीत करने का सुझाव देना चाहूंगा; हो सकता है कि उस अंतिम फ़ंक्शन के update_site_option
बजाय उपयोग करें update_blog_option
, जो उस मामले में आवश्यक नहीं है, ब्लॉग_आईडी को खो देता है।
वैसे भी, हमें पता है कि यह कैसे जाता है, और शुभकामनाएँ!