رفتن به مطلب

چگونگي اضافه كردن فيلد جنسيت در قسمت مديريت كاربران


پست های پیشنهاد شده

باسلام به دوستاي عزيز

مي خواستم ببينم :

1- چه طوري ميشه در قسمت مديريت كاربران و يا اضافه كردن كاربر ، يه فيلد اضافه كرد و در اون جنسيت رو مشخص نمود ؟

2- چه طوري ميشه نقش هاي موجود در ودرپرس ( مشترك ، نويسنده ، ويرايشگر و ... ) را ويرايش يا اضافه و يا كم كرد ؟

ممنون

لینک به ارسال

سلام

1 ـ

http://wordpress.org...r-extra-fields/

همچنین می تونید به جای نصب افزونه این کد رو از فانکشن قالب بذارید


<?php
add_action( 'show_user_profile', 'show_extra_profile_fields' );
add_action( 'edit_user_profile', 'show_extra_profile_fields' );
function show_extra_profile_fields( $user ) { ?>
<h3>مشخصات بیشتر</h3>
<table class="form-table">
<tr>
<th><label for="gender">جنسیت</label></th>
<td>
<select name="gender" id="gender" >
<option value="Male" <?php selected( 'Male', get_the_author_meta( 'gender', $user->ID ) ); ?>>مرد</option>
<option value="Female" <?php selected( 'Female', get_the_author_meta( 'gender', $user->ID ) ); ?>>زن</option>
</select>
</td>
</tr>
</table>
<?php }
add_action( 'personal_options_update', 'save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_profile_fields' );
function save_extra_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
update_usermeta( $user_id, 'gender', $_POST['gender'] );
}
?>

2 ـ

http://wordpress.org...er-role-editor/

لینک به ارسال

سلام

1 ـ

http://wordpress.org...r-extra-fields/

همچنین می تونید به جای نصب افزونه این کد رو از فانکشن قالب بذارید


<?php
add_action( 'show_user_profile', 'show_extra_profile_fields' );
add_action( 'edit_user_profile', 'show_extra_profile_fields' );
function show_extra_profile_fields( $user ) { ?>
<h3>مشخصات بیشتر</h3>
<table class="form-table">
<tr>
<th><label for="gender">جنسیت</label></th>
<td>
<select name="gender" id="gender" >
<option value="Male" <?php selected( 'Male', get_the_author_meta( 'gender', $user->ID ) ); ?>>مرد</option>
<option value="Female" <?php selected( 'Female', get_the_author_meta( 'gender', $user->ID ) ); ?>>زن</option>
</select>
</td>
</tr>
</table>
<?php }
add_action( 'personal_options_update', 'save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_profile_fields' );
function save_extra_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
update_usermeta( $user_id, 'gender', $_POST['gender'] );
}
?>

2 ـ

http://wordpress.org...er-role-editor/

داداش دستت درد نكنه ، ولي در مورد گزينه اول من كد رو در فانكش گذاشتم ولي وقتي اضافه كردن كاربر رو مي زنم گزينه در قسمت اضافه كردن كاربر نمياد ولي در شناسه شما هست و در مورد افزونه هم همين طوره ، يه چيز ديگه هم كه هست در مورد كدي كه قرار دادي ، در قسمت كاربران هيچ رديفي اضافه نشده البته در مورد افزونه هم همين طور هست ، ممنون ميشم راهنمايي كنين

لینک به ارسال

سلام می تونی از این روش استفاده کنی


function modify_contact_methods($profile_fields) {
// Add new fields
$profile_fields['twitter'] = 'Twitter Username';
return $profile_fields;
}
add_filter('user_contactmethods', 'modify_contact_methods');

برای چاپ کردن هم از این کد استفاده کن


<?php
$x = get_the_author_meta('twitter');
echo $x;
?>

لینک به ارسال

سلام می تونی از این روش استفاده کنی


function modify_contact_methods($profile_fields) {
// Add new fields
$profile_fields['twitter'] = 'Twitter Username';
return $profile_fields;
}
add_filter('user_contactmethods', 'modify_contact_methods');

برای چاپ کردن هم از این کد استفاده کن


<?php
$x = get_the_author_meta('twitter');
echo $x;
?>

ممنون دوست عزيز ، كدهارو گذاشتم تو فانكش قالب ولي كار نكرد .

لینک به ارسال
ممنون دوست عزيز ، كدهارو گذاشتم تو فانكش قالب ولي كار نكرد .

کد هارو خودم تست کردم مشکلی نداشت می تونید ببینید

لینک عکس

ویرایش شده توسط IMasoud
لینک به ارسال

کد هارو خودم تست کردم مشکلی نداشت می تونید ببینید

لینک عکس

function modify_contact_methods($profile_fields) { // Add new fields $profile_fields['twitter'] = 'Twitter Username'; return $profile_fields; } add_filter('user_contactmethods', 'modify_contact_methods');

Warning: Cannot modify header information - headers already sent by (output started at /home3/javid118/public_html/demo1/wp-content/themes/oromnetmag/functions.php:317) in /home3/javid118/public_html/demo1/wp-includes/option.php on line 747

Warning: Cannot modify header information - headers already sent by (output started at /home3/javid118/public_html/demo1/wp-content/themes/oromnetmag/functions.php:317) in /home3/javid118/public_html/demo1/wp-includes/option.php on line 748

اينم ارور هاش

لینک به ارسال

جنسیت جزو متاهای دیفالت کاربری نیست

برای ثبت جنسیت در فرم ثبت نام به فانکشن اضافه کنید:


add_action('register_form','myplugin_register_form');
function myplugin_register_form (){
$gender = ( isset( $_POST['gender'] ) ) ? $_POST['gender']: '';
?>
<p>جنسیت
<select for="gender" name="gender">
<option id="gender" value="Male">Male</option>
<option id="gender" value="Female">Female</option>
</select>
</p>
<?php
}
add_filter('registration_errors', 'myplugin_registration_errors', 10, 3);
function myplugin_registration_errors ($errors, $sanitized_user_login, $user_email) {
if ( empty( $_POST['gender'] ) )
$errors->add( 'gender_error','جمله‌ی خطای ثبت جنسیت که در اینجا با توجه به نوع فرم، کارایی ندارد');
return $errors;
}
add_action('user_register', 'myplugin_user_register');
function myplugin_user_register ($user_id) {
if ( isset( $_POST['gender'] ) )
update_user_meta($user_id, 'gender', $_POST['gender']);
}

حالا برای نمایش در پروفایل کاربر و امکان ویرایش به فانکشن اضافه کنید:


function add_gender_user_profile( $user ) {
?>
<table class="form-table">
<tr>
<td>
<label for="gender">Gender</label>
<input type="text" name="gender" id="gender" value="<?php echo esc_attr( get_the_author_meta( 'gender', $user->ID ) ); ?>" class="regular-text" readonly/>
</td>
<td>
<input type="radio" name="gender" id="gender" value="Male"/>Male<br/>
<input type="radio" name="gender" id="gender" value="Female"/>Female<br/>
<span class="description">می توانید جنسیت را تغییر دهید</span>
</td>
</tr>
</table>
<?php }
function save_gender_user_profile( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return FALSE;
update_user_meta( $user_id, 'gender', $_POST['gender'] );
}
add_action( 'show_user_profile', 'add_gender_user_profile' );
add_action( 'edit_user_profile', 'add_gender_user_profile' );
add_action( 'personal_options_update', 'save_gender_user_profile' );
add_action( 'edit_user_profile_update', 'save_gender_user_profile' );

** تغییرات قبلی که برای این منظور دادید رو به حالت اول برگردونید

ویرایش شده توسط isk
لینک به ارسال

فایل فانکشن قالبتون رو پیوست کنید

--------------------

جنسیت جزو متاهای دیفالت کاربری نیست

برای ثبت جنسیت در فرم ثبت نام به فانکشن اضافه کنید:


add_action('register_form','myplugin_register_form');
function myplugin_register_form (){
$gender = ( isset( $_POST['gender'] ) ) ? $_POST['gender']: '';
?>
<p>جنسیت
<select for="gender" name="gender">
<option id="gender" value="Male">Male</option>
<option id="gender" value="Female">Female</option>
</select>
</p>
<?php
}
add_filter('registration_errors', 'myplugin_registration_errors', 10, 3);
function myplugin_registration_errors ($errors, $sanitized_user_login, $user_email) {
if ( empty( $_POST['gender'] ) )
$errors->add( 'gender_error','جمله‌ی خطای ثبت جنسیت که در اینجا با توجه به نوع فرم، کارایی ندارد');
return $errors;
}
add_action('user_register', 'myplugin_user_register');
function myplugin_user_register ($user_id) {
if ( isset( $_POST['gender'] ) )
update_user_meta($user_id, 'gender', $_POST['gender']);
}

حالا برای نمایش در پروفایل کاربر و امکان ویرایش به فانکشن اضافه کنید:


function add_gender_user_profile( $user ) {
?>
<table class="form-table">
<tr>
<td>
<label for="gender">Gender</label>
<input type="text" name="gender" id="gender" value="<?php echo esc_attr( get_the_author_meta( 'gender', $user->ID ) ); ?>" class="regular-text" readonly/>
</td>
<td>
<input type="radio" name="gender" id="gender" value="Male"/>Male<br/>
<input type="radio" name="gender" id="gender" value="Female"/>Female<br/>
<span class="description">می توانید جنسیت را تغییر دهید</span>
</td>
</tr>
</table>
<?php }
function save_gender_user_profile( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return FALSE;
update_user_meta( $user_id, 'gender', $_POST['gender'] );
}
add_action( 'show_user_profile', 'add_gender_user_profile' );
add_action( 'edit_user_profile', 'add_gender_user_profile' );
add_action( 'personal_options_update', 'save_gender_user_profile' );
add_action( 'edit_user_profile_update', 'save_gender_user_profile' );

** تغییرات قبلی که برای این منظور دادید رو به حالت اول برگردونید

----------

هر دو كد رو توي فانكش قالب گذاشتم اما خطا داد :

Parse error: syntax error, unexpected '}' in /home3/javid118/public_html/demo1/wp-content/themes/oromnetmag/functions.php on line 322

اينم كد فانكش قالب :

ویرایش شده توسط Farid
ناخوانا بودن کد پیوست شده
لینک به ارسال

دوست عزیز پست شما ویرایش شد ... کدها ناخوانا شده بودند .. برای گذاشتن کدهای طولانی از قسمت bbcode مخصوص در ویرایشگر long box رو انتخاب کنید و کدتون رو بذارید و نیازی نیست که کد رو Bold کنید چون تگ بهش اضافه میشه و کد ها رو به هم میریزه

لینک به ارسال

به احتمال زیاد مشکل از وردپرس یا افزونه و ... هستش چون به هم مرتبط هستن

اگر از افزونه ای واسه این کار استفاده می کنید اون رو آف کنید

و وردپرستون هم آپدیت یا دوباره نصب کنید

قالب ساییتتوون شاید کلاً مشکل داشته باشه

من کدم رو روی چندتا وردپرس تست کردم مشکلی نداشت

لینک به ارسال

بیایید قدم به قدم جلو بریم:

تمام تغییراتی که برای این‌کار دادید رو به حالت اول برگردونید.

آیا در اینصورت فایل فانکشن و سایت بدون خطا عمل می‌کند؟

اگر بلی: پلاگین زیر را در پوشه‌ی پلاگین‌ها قرار دهید و از پنل وردپرس آن‌را فعال کنید.

اگر نه: فایل فاکشن رو اینجا پیوست کنید. (نه اینکه کدها رو کپی کنید)

پلاگین:

gender.php

ویرایش شده توسط isk
لینک به ارسال

دوست عزیز پست شما ویرایش شد ... کدها ناخوانا شده بودند .. برای گذاشتن کدهای طولانی از قسمت bbcode مخصوص در ویرایشگر long box رو انتخاب کنید و کدتون رو بذارید و نیازی نیست که کد رو Bold کنید چون تگ بهش اضافه میشه و کد ها رو به هم میریزه

بیایید قدم به قدم جلو بریم:

تمام تغییراتی که برای این‌کار دادید رو به حالت اول برگردونید.

آیا در اینصورت فایل فانکشن و سایت بدون خطا عمل می‌کند؟

اگر بلی: پلاگین زیر را در پوشه‌ی پلاگین‌ها قرار دهید و از پنل وردپرس آن‌را فعال کنید.

اگر نه: فایل فاکشن رو اینجا پیوست کنید. (نه اینکه کدها رو کپی کنید)

پلاگین:

gender.php

مشكلي نداره اونو فعال كردم فقط تنها چيزي كه هست الان فيلد تو قسمت ثبت نام نشون داده نميشه .

اينم فانكش قالب

functions.php

لینک به ارسال

به احتمال زیاد مشکل از وردپرس یا افزونه و ... هستش چون به هم مرتبط هستن

اگر از افزونه ای واسه این کار استفاده می کنید اون رو آف کنید

و وردپرستون هم آپدیت یا دوباره نصب کنید

قالب ساییتتوون شاید کلاً مشکل داشته باشه

من کدم رو روی چندتا وردپرس تست کردم مشکلی نداشت

من كد ها رو توي وردپرس 3.9.1 تست كردم هم روي هاست و هم لوكال هاست ولي در هر دوتاش كار نكرد.

البته در قالب هاي مختلف و بدون افزونه

لینک به ارسال

این فانکشن رو تست کنید ببینید براتون فیلد جنسیت اضافه میشه یا ن

functions(1).php

لینک به ارسال

این فانکشن رو تست کنید ببینید براتون فیلد جنسیت اضافه میشه یا ن

functions(1).php

اين ارور رو ميده :

Parse error: syntax error, unexpected '}' in /home3/user host/public_html/demo/wp-content/themes/oromnetmag/functions.php on line 54

لینک به ارسال

تست کنید

functions(1).php

ممنون ولي بازم ارور ميده :

Fatal error: Cannot redeclare myplugin_register_form() (previously declared in /home3/javid118/public_html/demo/wp-content/plugins/gender.php:10) in /home3/user host/public_html/demo/wp-content/themes/oromnetmag/functions.php on line 297

لینک به ارسال

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

لینک به ارسال

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

دوست عزيز ، من اون پلاگين رو حذف كردم و از فانكش قالب استفاده مي كنم ، اون خطا هم به خاطر كش مرورگر بود كه حلش كردم.

ولي فيلد تو قسمت ثبت نام اضافه نشده

ویرایش شده توسط oromnet
لینک به ارسال

نمونه

http://codex.wordpress.org/Customizing_the_Registration_Form

اون طوري كه من متوجه شديم اين يه فيلد براي اسم اضافه مي كنه درسته ؟

من اينو چيكارش كنم ؟

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...