User Profie-এ নতুন Field যোগ করা (ওয়ার্ডপ্রেস হ্যাকস- ০৭)

- নাজমুল আহসান

কিছু ওয়ার্ডপ্রেস ব্লগে দেখবেন User Profile পেইজে (www.yoursite.com/wp-admin/profile.php) অতিরিক্ত কিছু ফিল্ড থাকে। যেমনঃ ফোন নম্বর, ফেইসবুক ইউজারনেইম অথবা ঠিকানা ইত্যাদি। আমি এই জিনিসটার প্রয়োজনবোধ করতাম খুব। শুরুর দিকে এর জন্যে একটা প্লাগিন ব্যবহার করতাম। তারপর সেই একই সমস্যা, প্লাগিন সাইট স্লো করে দেয়। অগত্য কোড মডিফাই-এর দ্বারস্থ হওয়া।
বরাবরের মতোই নিচের কোডগুলো আপনার থিমের functions.php ফাইলে যুক্ত করে দিন। নিচে ব্যাখ্যা করেছি-
কোড শুরুঃ
function fb_add_custom_user_profile_fields( $user ) {
?>
<h3><?php _e('New Section Title', 'your_textdomain'); ?></h3>
<table>
<tr>
<th>
<label for="address"><?php _e('Location', 'your_textdomain'); ?></label>
</th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" /><br />
</td>
</tr>
<tr>
<th>
<label for="phone"><?php _e('Phone Number', 'your_textdomain'); ?></label>
</th>
<td>
<input type="text" name="phone" id="phone" value="<?php echo esc_attr( get_the_author_meta( 'phone', $user->ID ) ); ?>" /><br />
<span><?php _e('Enter Your Phone Number', 'your_textdomain'); ?></span-->
</td>
</tr>
</table>
<?php }
function fb_save_custom_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return FALSE;
update_usermeta( $user_id, 'address', $_POST['address'] );
update_usermeta( $user_id, 'phone', $_POST['phone'] );
}
add_action( 'show_user_profile', 'fb_add_custom_user_profile_fields' );
add_action( 'edit_user_profile', 'fb_add_custom_user_profile_fields' );
add_action( 'personal_options_update', 'fb_save_custom_user_profile_fields' );
add_action( 'edit_user_profile_update', 'fb_save_custom_user_profile_fields' );

ব্যাখ্যাঃ
এখানে যে কোড দেওয়া আছে, সেটা Profile পেইজে Location এবং Phone Number নামে দুইটা নতুন Field করবে। লাল কোডগুলো Location এবং নীল কোডগুলো Phone Number-এর জন্যে। খেয়াল করুন, Location যুক্ত করার জন্যে আমরা নিচের কোডটুকু যোগ করেছি-
<tr>
<th>
<label for="address"><?php _e('Location', 'your_textdomain'); ?></label>
</th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" /><br />
</td>
</tr>

(ধরা যাক, লাল রঙয়ের এই অংশের নাম Part-A) এই কোড আপনার প্রোফাইল পেইজে একটা ফিল্ড যোগ করবে। কিন্তু ইউজার সেই ফিল্ডে যে তথ্য দিবেন, সেটা save করতে হলে নিচের কোডটুকু যোগ করতে হবে-
update_usermeta( $user_id, 'address', $_POST['address'] );
(ধরা যাক, নীল রঙয়ের এই অংশের নাম Part-B) এভাবে আপনি যতগুলো ফিল্ড যোগ করতে চান, Part-A এবং Part-B’কে ততবার কপি করে দিন। এবং খেয়াল করুন, প্রতিটি ফিল্ডের জন্যে address শব্দটাকে (বোল্ড করে দিয়েছি, খেয়াল করুন।) নতুন নতুন শব্দ দিয়ে Replace করুন। যেমনঃ আপনি যদি রক্তের গ্রুপের জন্যে একটা ফিল্ড যোগ করতে চান, তাহলে Part-A এবং Part-B’তে যতগুলো address লেখা আছে, সবগুলোকে blood_group (অথবা আপনার পছন্দমতো শব্দ) বসিয়ে দিন। এবং অবশ্যই রক্তের গ্রুপের জন্যে যেটা Part-A সেটাকে আগের Part-A’র পরেই এবং নতুন Part-B’কে আগের Part-B’র নিচেই বসান।
আমি চেষ্টা করেছি একেবারে সোজা ভাষায় ব্যাখ্যা করতে। এরপরেও যদি কেউ না বুঝতে পারেন, তাহলে অবশ্যই মন্তব্য করুন।

(মোট পড়েছেন 183 জন, আজ 1 জন)
শর্টলিংকঃ

১টি মন্তব্য

মন্তব্য করুন