در این آموزش قصد داریم تا یک فیلد سفارشی به پروفایل کاربری اضافه کنیم. تصور کنید که اعضای سایت بنا به عملکردشون دارای جایگاه و سمتی باشند. بعنوان مثال قصد داریم تا فیلدی اضافه کنیم که از آن بعنوان نمایش جایگاه اعضاء سایت استفاده شود.برای این کار لازمه که از هوک های نامبرده شده در زیر استفاده بشه:

۱- show_user_profile

۲- edit_user_profile

۳- personal_options_update

۴- edit_user_profile_update

ابتدا بوسیله افزونه Duplicator از سایت و دیتابیس نسخه پشتیبان تهیه کنید!

سپس قطعه کد زیر که وظیفه آن ایجاد فیلد در پروفایل کاربری می باشد را به فایل function.php اضافه کنید.

add_action( 'show_user_profile', 'extra_user_profile_fields' );

add_action( 'edit_user_profile', 'extra_user_profile_fields' );

function extra_user_profile_fields( $user ) { ?>

<h3><?php _e("فیلد سفارشی ایجاد شده در پروفایل", "blank"); ?></h3>

<table class="form-table">

<tr>

<th><label for="user_site_position"><?php _e("سمت"); ?></label></th>

<td>

<input type="text" name="user_site_position" id="user_site_position" value="<?php echo esc_attr( get_the_author_meta( 'user_site_position', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("لطفا سمت خود را در سایت وارد نمایید."); ?></span>

</td>

<tr>

</table>

<?php
}

حال قطعه کد زیر که وظیفه آن ایجاد فیلد در دیتابیس می باشد را به فایل function.php اضافه می کنیم.

add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );

function save_extra_user_profile_fields( $user_id ) {

if ( !current_user_can( 'edit_user', $user_id ) ) {
return false;
}
update_user_meta( $user_id, 'user_site_position', $_POST['user_site_position'] );

}

حال به پروفایل کاربری سایت مراجعه نمایید. همانطور که ملاحظه می کنید فیلدی تحت عنوان سمت به پروفایل کاربری اضافه شده است.

اگر در مورد این مطلب تجربه ای دارید و یا با ابهام مواجه شده اید لطفا با مراجعه به قسمت دیدگاه، آنرا مطرح کنید.

این مطلب چقدر برای شما مفید بوده است؟