اضافه کردن فیلد جدید در پروفایل کاربری وردپرس

[short_link]

برای وب سایت های  و وبلاگ هایی که دارای چند نویسنده هستند شاید گاهی اوقات لازم باشه که فیلدهای جدید به شناسنامه یا همون پروفایل کاربری اضافه بشه و در صفحه نویسنده و یا در پست های و یا هر قسمت دیگه از وب سایت و یا فروشگاه این اطلاعات فراخوانی و نمایش داده بشه .

شناسنامه کاربر وردپرس

شناسنامه کاربر وردپرس

این فیلد می تونه آی دی تلگرام، لینک پروفایل اینستاگرام و یا لینک پروفایل کلاب‌هوس باشه .
برای اضافه کردن فیلد جدید در پروفایل هر کاربر این کد رو به فانکشن قالب اضافه می کنیم . البته برای اینکه تغییرات از بین نره بهتره که به فانکشن قالب چایلد اضافه بشه  . (راهنمای ایجاد قالب چایلد)

 


add_action( 'show_user_profile', 'extra_user_profile_fields', 10, 1  );
add_action( 'edit_user_profile', 'extra_user_profile_fields', 10, 1  );

function extra_user_profile_fields( $user ) { ?>
    <h3><?php _e("تماس با اطلاعات بیشتر", "blank"); ?></h3>

    <table class="form-table">
    <tr>
        <th><label for="author_avatar"><?php _e("لینک تصویر آواتار "); ?></label></th>
        <td>
            <input type="text" name="author_avatar" id="author_avatar" value="<?php echo esc_attr( get_the_author_meta( 'author_avatar', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("لینک تصویر آواتار رو وارد کنید."); ?></span>
        </td>
    </tr>
    
    
      <tr>
        <th><label for="author_telegram"><?php _e("آی دی تلگرام "); ?></label></th>
        <td>
            <input type="text" name="author_telegram" id="author_telegram" value="<?php echo esc_attr( get_the_author_meta( 'author_telegram', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("آی دی تلگرام رو وارد کنید."); ?></span>
        </td>
    </tr>  
    
       <tr>
        <th><label for="author_clubhouse"><?php _e("آی دی کلاب هوس "); ?></label></th>
        <td>
            <input type="text" name="author_clubhouse" id="author_clubhouse" value="<?php echo esc_attr( get_the_author_meta( 'author_clubhouse', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("آی دی کلاب هوس  رو وارد کنید."); ?></span>
        </td>
    </tr>     
    
    
    </table>
<?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 ( empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'update-user_' . $user_id ) ) {
        return;
    }
    
    if ( !current_user_can( 'edit_user', $user_id ) ) { 
        return false; 
    }
    update_user_meta( $user_id, 'author_avatar', $_POST['author_avatar'] );
    update_user_meta( $user_id, 'author_telegram', $_POST['author_telegram'] );
    update_user_meta( $user_id, 'author_clubhouse', $_POST['author_clubhouse'] );
}


به وسیله کدهای بالا که به فایل فانکشن قالب اضافه شد 3 تا فیلد جدید به فیلدهای کاربری کاربران وردپرس اضافه میشه  .
فیلدی آی دی تلگرام که برای ارتباط با نویسنده و یا کاربر میشه ازش استفاده کرد

فیلد پروفایل کلوب‌هاوس که جدیدا مورد استقبال قرار گرفته

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

با استفاده از این کد امکان این هست که تصویر جدیدی از نویسنده و یا کاربر توسط ادمین و یا خودکاربر در محیط وردپرس و یا هر سایت دیگه ای آپلود شده و در قسمت مربوط به تصویر جدید در پروفایل کاربری وارد بشه .

وقتی این فیلد پر بشه از تصویر این قسمت استفاده میشه و اگر این قسمت خالی باشه طبق روال معمول از آواتار معرفی و متصل شده به ایمیل در گراواتار استفاده میشه

 

اضافه کردن فیلد های جدید در ناحیه کاربری

اضافه کردن فیلد های جدید در ناحیه کاربری

 

اطلاعات این سه فیلد در متای یوزر کاربر ذخیره میشن و هر جا نیاز بود در صفحات داخلی و یا در صفحه نویسنده که نیاز به نمایش اطلاعات نویسنده هست می تونیم این اطلاعات رو نمایش بدیم :

 

$user = get_user_by( 'id', get_the_author_meta('ID') );

$user_id=$user->ID;
$userMeta= get_user_meta( $user->ID );



$author_telegram= $userMeta['author_telegram'] [0];
$author_clubhouse = $userMeta['author_clubhouse'][0];

$gurl=$userMeta['author_avatar']['0'];

if(empty($gurl)) {
$gurl=get_avatar_url($user_email, array('size' => 150)); 
}

(0) دیدگاه برای این پست ثبت شده
دیدگاه خود را بفرستید
  1. اولین نفری باشید که دیدگاه خود را ثبت می کند!
« راهنمای ایجاد چایلد تم
WP_Query »
wefwegwegweg/wp-content/themes/future