ysm-design

افزودن فیلد جدید کاربری

11 پست در این موضوع قرار دارد

سلام.

میخوام یه فیلد به پروفایل کاربرا اضافه کنم که فقط خودم بتونم محتواش رو تغییر بدم. وهر کاربر بتونه فقط محتوا رو بخونه.

چیکار باید بکنم؟

به اشتراک گذاری این پست


لینک به پست

مثال میزنید؟

به اشتراک گذاری این پست


لینک به پست

آموزش

http://wpengineer.com/2173/custom-fields-wordpress-user-profile/

شرط بررسی مدیر بودن


if(current_user_can("level_10")){
echo "admin";
}else{
echo "user";
}

به اشتراک گذاری این پست


لینک به پست

مرسی. ولی شرطش رو چطور بزارم؟ میخوام بگم فقط خودم فیلد رو بتونم تغییر بدم. کاربر فقط بتونه بخونه. چطور شرطش رو بنویسم.

به اشتراک گذاری این پست


لینک به پست

به جای admin باید input به همراه مقدار رو چاپ کنید

user هم فقط مقدار


if(current_user_can("level_10")){
echo '<input type="text" name="address" id="address" value="'.esc_attr( get_the_author_meta( 'address', $user->ID ) ).'" class="regular-text" />
<br />';
}else{
echo esc_attr( get_the_author_meta( 'address', $user->ID ) );
}

به اشتراک گذاری این پست


لینک به پست

من این کدها رو توی فایل functions.php قالبم گذاشتم. فیلدی که میخواستم رو ساخته ولی یه سری اررور های مختلف توی بعضی از قسمت های پنل میده.

اگر امکانش هست، ببینید کدهایی که گذاشتم مشکل نداره:ممنون


function fb_add_custom_user_profile_fields( $user ) {
?>
<h3>نمره شما</h3>
<table class="form-table">
<tr>
<th>
<label for="score">نمره شما
</label></th>
<td>
<input type="text" name="score" id="score" value="<?php echo esc_attr( get_the_author_meta( 'score', $user->ID ) ); ?>" class="regular-text" /><br />

</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, 'score', $_POST['score'] );
}
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' );

if(current_user_can("level_10")){
echo '<input type="text" name="score" id="score" value="'.esc_attr( get_the_author_meta( 'score', $user->ID ) ).'" class="regular-text" />
<br />';
}else{
echo esc_attr( get_the_author_meta( 'score', $user->ID ) );
}

به اشتراک گذاری این پست


لینک به پست

خطا هایی که داده رو هم بزارید اینجا

به اشتراک گذاری این پست


لینک به پست

اررور

[b]Warning[/b]: Cannot modify header information - headers already sent by (output started at /home/...../public_html/wp-content/themes/theme-name/functions.php:240) in [b]/home/......./public_html/wp-includes/pluggable.php[/b] on line [b]881[/b]

به اشتراک گذاری این پست


لینک به پست

قسمت اول کد که کارش ساختن فیلد هست، درست کار میکنه و مشکلی نداره.

ولی وقتی کد سطح دسترسی رو میزارم سایت اررور میده. مشکل از کد سطح دسترسی هستش.

به اشتراک گذاری این پست


لینک به پست

مشکل اررور رو پیدا کردم. فقط یه موضوع جدید اینکه: مقدار داخل فیلد رو ذخیره نمیکنه و نگه نمیداره.

به اشتراک گذاری این پست


لینک به پست

function fb_add_custom_user_profile_fields( $user ) {
?>
<h3>نمره شما</h3>
<table class="form-table">
<tr>
<th>
<label for="score">نمره شما
</label></th>
<td>
<?php
if(current_user_can("level_10")){
echo '<input type="text" name="score" id="score" value="'.esc_attr( get_the_author_meta( 'score', $user->ID ) ).'" class="regular-text" />
<br />';
}else{
echo esc_attr( get_the_author_meta( 'score', $user->ID ) );
}
?>
</td>
</tr>
</table>
<?php }
function fb_save_custom_user_profile_fields( $user_id ) {
if(current_user_can("level_10"))
update_usermeta( $user_id, 'score', $_POST['score'] );
}
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' );

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری