মাল্টিসাইট সাইনআপ প্রক্রিয়া টুইঙ্ক করা সহজ জিনিস নয়। অন্যান্য প্রসেসের বিপরীতে এর সাথে খেলতে অনেক হুক রয়েছে তবে ভারী কাস্টমাইজেশনের জন্য এগুলি খুব ভালভাবে একসাথে আসে বলে মনে হয় না, তাই আমি আপনার হতাশাকে বুঝতে পারি।
যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি যা চান তা অর্জন করা এত জটিল নয়, যদিও এটি ওয়ার্ডপ্রেসের অনেক বেশি ডিফল্ট আচরণকে ছাড়াই এক-পদক্ষেপের সমাধান হতে পারে না, মূলত সাইনআপ (যেমন আপনার ব্যবহারকারীর কাস্টম তথ্য জমা দেবে) এবং অ্যাক্টিভেশন ( অর্থাত্ নতুন ব্লগটি আসলে কখন তৈরি হবে) আলাদাভাবে ঘটে।
এখানে একটি খুব রুক্ষ কোড যা আপনার শুরু করতে হবে। আশা করি এটি আপনাকে সঠিক দিকে চালিত করবে:
// 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']);
}
মনে রেখ:
- আপনি যদি প্লাগ-ইন এর মাধ্যমে ইনপুটটি ফিল্টার করতে চান তবে আমি জোরালোভাবে প্রদত্ত বিকল্পগুলি লক করতে একটি নির্বাচন ইনপুট ব্যবহার করার পরামর্শ দেব;
- যেহেতু কিছু ক্ষেত্রের প্রয়োজন হয় এবং নিবন্ধকরণের সময় বৈধতার মধ্য দিয়ে যায় (ন্যূনতম অক্ষর, সাইটের নামের জন্য অনুমোদিত না হওয়া অক্ষর, কালো তালিকাভুক্ত নাম ইত্যাদি), তাই প্রথমটিতে ইনপুটটির মান স্থাপনের সময় আমি আপনার অতিরিক্ত ক্ষেত্রটি $ _REQQUEST তে পরীক্ষা করার পরামর্শ দেব ফাংশন, যাতে ওয়ার্ডপ্রেসের 'ডিফল্ট ক্ষেত্রগুলির মান ঠিক করতে তিনি প্রেরণ করেছেন সে ক্ষেত্রে ব্যবহারকারী তার ইনপুটটি হারাবে না;
- আপনার প্লাগ-ইন সেরা অনুসারে আপনি সর্বশেষ ফাংশনটির ধারণাটি প্রতিস্থাপন করতে পারেন তবে ক্ষেত্রটির মান এখন সেই শেষ ফাংশনটির মধ্য থেকেই পাওয়া যাবে যা আপনাকে আপনার পথে সহায়তা করবে।
একটি চূড়ান্ত নোটে, আপনি যদি পরে সমস্ত বিদ্যমান ব্লগ থেকে সমস্ত 'এক্সট্রা_ফিল্ড' মানগুলি প্রক্রিয়া করতে চান তবে আমি দৃ strong়ভাবে একটি একক টেবিলে তথ্য সংরক্ষণের পরামর্শ দিচ্ছি; সম্ভবত শেষ ফাংশনটির update_site_option
পরিবর্তে ব্যবহার update_blog_option
করুন, ব্লগ_আইডি হারাবেন, যা সেই ক্ষেত্রে প্রয়োজন হয় না।
যাইহোক, আসুন কীভাবে তা আমাদের জানা যাক এবং শুভকামনা!