رفتن به مطلب

انتخاب دسته هنگام عضویت برای کاربران


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

سلام

چجوری میتونم به صفحه عضویت انتخاب دسته رو اضافه کنم که کاربر با انتخاب دسته مورد نظر هنگام ثبت نام ، بعدش هر پستی ارسال میکنه توی اون دسته ارسال بشه ؟

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

ویرایش شده توسط ℳIℒȺD
لینک به ارسال

سلام، خب شما میتونید، به صورت دستی، یا با استفاده از افزونه فیلد مورد نظرتون رو اضافه کنید و سپس در سورستون مقدار مورد نظرتون رو از آپشن دریافت و در سورس تون از اون استفاده کنید.

لینک به ارسال

این کد را به اینصورت اصلاح کنید

جای نام - نام هر دسته بندی و جای آی دی عدد آی دی اون دسته بندی و به تعداد دسته هاتون بسازیدش


<option value="آی دی">نام </option>

حالا تمام option هایی که ساختید را در این کد بگذارید بجای


<!--- محل option ها -->

در این کد


add_action('register_form','myplugin_register_form');
function myplugin_register_form (){
$state = ( isset( $_POST['state'] ) ) ? $_POST['state']: '';
?>
<p>
<label for="state">استان خود را انتخاب نمایید <br />
</label><select name="state" id="state">
<!--- محل option ها -->
</select>
</p>
<?php
}
//2. Add validation. In this case, we make sure first_name is required.
add_filter('registration_errors', 'myplugin_registration_errors', 10, 3);
function myplugin_registration_errors ($errors, $sanitized_user_login, $user_email) {
if ( empty( $_POST['state'] ) or $_POST['state']<=0 )
$errors->add( 'State_error','استان محل زندگی خود را انتخاب نمایید' );
return $errors;
}
//3. Finally, save our extra registration user meta.
add_action('user_register', 'myplugin_user_register');
function myplugin_user_register ($user_id) {
if ( isset( $_POST['state'] ) )
update_user_meta($user_id, 'state', $_POST['state']);
}

کد را در functions.php قرار بدید حالا فیلد استانها به برگه ی ثبت نام اضافه می شه

می مونه در صفحه اکشن ارسال مطلب در کدهای php صفحه بگردید دنبال کدی شبیه به گ


$cat = $_POST['category'];

و کد را تغییر بدید به


if(get_user_meta($user_id, 'state')) {
$cat = get_user_meta($user_id, 'state', true);
}
else {
$cat = $_POST['category'];
}

توجه کنید که از این کد شما به مقدار $cat احتیاج دارید و مهمه که طرف اول تساوی رو یکسان بسازید در نتیجه هر متغییری که به این شکل با مقدار دسته بندی برابر شده بود می تونه جای کد بالا باشه و تفاوتی در ماجرا نداره

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

لینک به ارسال

ممنون

استان هارو به صفحه عضویت اضافه کردم

ولی متوجه قسمت دوم صحبتتون نشدم

در صفحه اکشن ارسال مطلب در کدهای php صفحه بگردید

این کجا هست؟

لینک به ارسال

این را شما باید بدونید اگر اکشن ارسال پستتون روندونید کجاست که نمی تونید شخصی سازیش کنید

لینک به ارسال

چجوری میشه فهمید؟ راهی نداره؟

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

https://wordpress.or.../djd-site-post/

ویرایش شده توسط ℳIℒȺD
لینک به ارسال

این افزونه خودش امکان ویرایش را هم داره


<a href="http://site.com/send-post/?post_id=<?php the_ID();?>">ویرایش مطلب</a>

در کد بالا بجای http://site.com/send-post نشانی صفحه ی ارسال مطلب را بگذارید و در حلقه قرارش بدید و تست کنید

لینک به ارسال

ممنون . ولی این پست رو با اون تاپیک سوالم اشتباه گرفتید :دی

این پست برای انتخاب دسته هنگام عضویت هست ,شما عرض کردین باید

اکشن ارسال پست رو بدون من گفتم از اون افزونه استفاده میکنم ( همین پست رو توی تاپیک دیگه هم زدم )

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

الان که این کد رو اضافه کردم همه افراد میتونند هرپستی رو خواستند ویرایش کنند

و چجوری میشه

اکشن ارسال رو پیدا کرد؟ برای همون انتخاب دسته توی صفحه عضویت

لینک به ارسال

برای اینکه فقط کاربرای مجاز دسترسی داشته باشند باید دسترسی کاربرانتان را تنظیم کنید و کد را در شرط بگذارید مثل کدی که در شرط براتون دادم برای حذف که فرمودید کاربرا نمی تونند ببینندش از شرط خارجش کردیم

دسترسی کاربرانتان را اول درست تعریف کنید بعد کد را بگذارید داخل شرط


<?php if ( current_user_can( 'edit_post', $post_id ) ) {?>
لینک ویرایشگر
<?php };?>

لینک به ارسال

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

چجوری میشه انتخاب دسته هنگام ثبت نام رو هم درست کرد؟

لینک به ارسال

کارهایی که در لینک گفته شد را انجام که دادید این فایل را از زیپ خارج کنید و جایگزین فایل هم نامش در پوشه views افزونه کنید

تغییرات شما با به روز رسانی افزونه از بین می ره

display.zip

لینک به ارسال

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

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

ویرایش شده توسط ℳIℒȺD
لینک به ارسال

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

پشتیبانی رایگان یه حد و مرزی داره

من کد را می گذارم استفاده اش با خودتونه و اگر به مشکل خوردید در بخش خرید تایپیک بزنید تا دوستانی که فرصت دارند براتون در قبال هزینه تنظیمش کنند

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


/**
* Show custom user profile fields
* @param obj $user The user object.
* @return void
*/
function numediaweb_custom_user_profile_fields($user) {
?>
<table class="form-table">
<tr>
<th>
<label for="tc_location"><?php _e('Location'); ?></label>
</th>
<td>
<input type="text" name="tc_location" id="tc_location" value="<?php echo esc_attr( get_the_author_meta( 'tc_location', $user->ID ) ); ?>" class="regular-text" />
<br><span class="description"><?php _e('Your location.', 'travelcat'); ?></span>
</td>
</tr>
<tr>
<th>
<label for="tc_favorites"><?php _e('Favorites', 'travelcat'); ?></label>
</th>
<td>
<input type="text" name="tc_favorites" id="tc_favorites" value="<?php echo esc_attr( get_the_author_meta( 'tc_favorites', $user->ID ) ); ?>" class="regular-text" />
<br><span class="description"><?php _e('Can you share a few of your favorite places to be or to stay?', 'travelcat'); ?></span>
<br><span class="description"><?php _e('Separate by commas.', 'travelcat'); ?></span>
</td>
</tr>
<tr>
<th>
<label for="tc_travel_map"><?php _e('Travel map', 'travelcat'); ?></label>
</th>
<td>
<input type="text" name="tc_travel_map" id="tc_travel_map" value="<?php echo esc_attr( get_the_author_meta( 'tc_travel_map', $user->ID ) ); ?>" class="regular-text" />
<br><span class="description"><?php _e('Been there / Going there within a year / Wish list.', 'travelcat'); ?></span>
<br><span class="description"><?php _e('Separate by commas.', 'travelcat'); ?></span>
</td>
</tr>
</table>
<?php
}
add_action('show_user_profile', 'numediaweb_custom_user_profile_fields');
add_action('edit_user_profile', 'numediaweb_custom_user_profile_fields');

لینک به ارسال
  • 6 ماه بعد...

سلام مجدد

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

لینک به ارسال
  • 5 هفته بعد...

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

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

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

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

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

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

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

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

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