رفتن به مطلب

ساخت یک برگه مختص هر کاربر


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

سلام وقت بخیر

 

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

 

آیا امکان این کار هست ؟ اگه هست لطفا راهنمایی کنید

لینک به ارسال

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

لینک به ارسال

برای اختصاص برگه به هر کاربر باید کاربر وارد سایت بشه یعنی نام کاربری و رمزعبور داشته باشه نه اینکه با هر سیستمی که وارد برگه ای شد هدایت بشه به برگه مخصوص خودش ...

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

https://wordpress.org/plugins/user-profile/

https://wordpress.org/plugins/profile-builder/

 

افزونه پروفایل کاربری وردپرس شبیه فیس بوک User Profile

لینک به ارسال
در 1 ساعت قبل، rezakianoosh گفته است :

برای اختصاص برگه به هر کاربر باید کاربر وارد سایت بشه یعنی نام کاربری و رمزعبور داشته باشه نه اینکه با هر سیستمی که وارد برگه ای شد هدایت بشه به برگه مخصوص خودش ...

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

https://wordpress.org/plugins/user-profile/

https://wordpress.org/plugins/profile-builder/

 

افزونه پروفایل کاربری وردپرس شبیه فیس بوک User Profile

شما منظور من رو بد متوجه شدید. منظورم اینه که : کاربر بعد از لاگین کردن روی یک لینک کلیک میکنه و اون لینک کاربر رو هدایت میکنه به برگه مخصوص خودش که یک سری اطلاعات راجع به خودش توش هست.

مثلا ما سه تا کاربر دارد A B C هر سه تا یم برگه به نام خودشون دارن ولی همه روی یک لینک واحد کلیک میکنن و اون لینک اون ها رو هدایت میکنه به برگه هم نام خودشون

لینک به ارسال
در 3 ساعت قبل، a2h گفته است :

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

من این کد رو پیدا کردم ولی مشکلش اینه که همه ی کاربرا رو به یک صفحه هدایت میکنه

 

function sl_login_redirect(){
    return home_url( '/your-page' );
}
add_filter( 'login_redirect', 'sl_login_redirect' );

 

من میخوام همین هدایت کردن انجام بشه ولی با این تفاوت که وقتی کاربری لاگین کرد وارده برگه ای با نام خودش بشه .مثلا کاربری با نام کاربری ” علی ” وارد برگه ای با نام ” علی ” بشه. میشه کدش رو بزارید؟

لینک به ارسال

یک قالب برگه بسازید مثلا به نام profile

و این کد را ابتداش بگذارید 

<?php
if(is_user_logged_in()) {
	wp_get_current_user();
?>
مابقی کدهای صفحه
<?php 
}
?>

و دیتاهای کاربر جاری رو توش به این صورت نمایش بدید 

<?php
echo $current_user->ID;//آیدی کاربر
echo $current_user->user_login;//نام کاربری
echo $current_user->user_nicename;// نام مستعار
echo $current_user->user_email;// ایمیل
echo $current_user->user_url;// نشانی سایت
echo $current_user->user_registered;// تاریخ ثبت نام 
echo $current_user->user_activation_key;// کد تایید
echo $current_user->user_status;//وضعیت کاربر
echo $current_user->display_name;// نام نمایشی
?>

 

لینک به ارسال
در 8 ساعت قبل، imanfakhar گفته است :

یک قالب برگه بسازید مثلا به نام profile

و این کد را ابتداش بگذارید 


<?php
if(is_user_logged_in()) {
	wp_get_current_user();
?>
مابقی کدهای صفحه
<?php 
}
?>

و دیتاهای کاربر جاری رو توش به این صورت نمایش بدید 


<?php
echo $current_user->ID;//آیدی کاربر
echo $current_user->user_login;//نام کاربری
echo $current_user->user_nicename;// نام مستعار
echo $current_user->user_email;// ایمیل
echo $current_user->user_url;// نشانی سایت
echo $current_user->user_registered;// تاریخ ثبت نام 
echo $current_user->user_activation_key;// کد تایید
echo $current_user->user_status;//وضعیت کاربر
echo $current_user->display_name;// نام نمایشی
?>

 

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

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

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

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

با استفاده از 

echo get_user_meta($user->ID, 'example', true);

 

لینک به ارسال
در 3 دقیقه قبل، imanfakhar گفته است :

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

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

با استفاده از 


echo get_user_meta($user->ID, 'example', true);

 

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

 

این کدی که شما گذاشتید دقیقا چه کاری میکنه و جای example باید چی بنویسم ؟

لینک به ارسال

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

لینک به ارسال
در 9 ساعت قبل، imanfakhar گفته است :

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

 

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

لینک به ارسال

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

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

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

قدم اول اینکه شناسه کاربری کاربران را صورت کنید یعنی از صفحه نمایش همه کاربران و ستون شناسه شناسه هرکس را بردارید 

Screenshot_38.png.53f1941ef8621e6ee2ae78

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

سوم اینکه از فایل page.php  قالبتون یک کپی بگیرید و اسمش رو مثلا بگذارید student-page.php 

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

<?php 
/* template name: student page*/?>

پنجم توی فایل بگردید دنبال 

while(have_posts()) : 
the_post();

و بعدش وارد کنید 

global $user_login, $user_level;
if(is_user_logged_in()) {
$usersingle = '-'.$user_login;
}
else {
$usersingle = 'none';
}
$postname = $post->post_name;
if($postname == $usersingle || $user_level>=8)  : 

ششم تو فایل بگردید دنبال 

endwhile;

و قبلش وارد کنید 

endif;


 هفتم برای هر کاربر اطلاعات دلخواهتون رو تو یک برگه  با قالب student page منتشر کنید و نام برگه رو بگذارید اسلش + شناسه کاربری یعنی یک خط تیره قبل از شناسه کاربری بگذارید 

هشتم اگر می خواهید کاربران خودکار به برگه ی خودشون هدایت بشند: 

فایل header.php قالبتون رو باز کنید و در ابتداش قبل از هر کدی بنویسید 

<?php 
global $user_login, $user_level;
$usersingle = '-'.$user_login;
if(is_user_logged_in() && $user_level<8 && !is_single($usersingle)) {
$location = site_url('/'.$usersingle);
wp_redirect($location);
exit;
} 
?>

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

 

لینک به ارسال
در ۱ ساعت قبل، imanfakhar گفته است :

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

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

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

قدم اول اینکه شناسه کاربری کاربران را صورت کنید یعنی از صفحه نمایش همه کاربران و ستون شناسه شناسه هرکس را بردارید 

Screenshot_38.png.53f1941ef8621e6ee2ae78

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

سوم اینکه از فایل page.php  قالبتون یک کپی بگیرید و اسمش رو مثلا بگذارید student-page.php 

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


<?php 
/* template name: student page*/?>

پنجم توی فایل بگردید دنبال 


while(have_posts()) : 
the_post();

و بعدش وارد کنید 


global $user_login, $user_level;
if(is_user_logged_in()) {
$usersingle = '-'.$user_login;
}
else {
$usersingle = 'none';
}
$postname = $post->post_name;
if($postname == $usersingle || $user_level>=8)  : 

ششم تو فایل بگردید دنبال 


endwhile;

و قبلش وارد کنید 


endif;


 هفتم برای هر کاربر اطلاعات دلخواهتون رو تو یک برگه  با قالب student page منتشر کنید و نام برگه رو بگذارید اسلش + شناسه کاربری یعنی یک خط تیره قبل از شناسه کاربری بگذارید 

هشتم اگر می خواهید کاربران خودکار به برگه ی خودشون هدایت بشند: 

فایل header.php قالبتون رو باز کنید و در ابتداش قبل از هر کدی بنویسید 


<?php 
global $user_login, $user_level;
$usersingle = '-'.$user_login;
if(is_user_logged_in() && $user_level<8 && !is_single($usersingle)) {
$location = site_url('/'.$usersingle);
wp_redirect($location);
exit;
} 
?>

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

 

 

 

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

لینک به ارسال

این کار رو انجام دادید؟

نقل قول

سوم اینکه از فایل page.php  قالبتون یک کپی بگیرید و اسمش رو مثلا بگذارید student-page.php 

 

لینک به ارسال
در 4 ساعت قبل، imanfakhar گفته است :

این کار رو انجام دادید؟

 

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

The page isn't redirecting properly

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

سلام

شما می‌بایست:

  1. یک Post_Type درست کنید (برای نمونه User) و taxonomy های دلخواه رو درست کنی. سپس یکبار پیوند یکتا رو ذخیره کنی تا کار کنه.
  2. براش پرونده‌های تک برگ و بایگانی و تکسونومی درست کنید یا اگر دارای پرونده content هست شرط براش درست کنید.
  3. این کد رو به فانکشن بیافزایی:
<?php function user_profile_page() {
  $current_user = wp_get_current_user();
  return '/user/'. $current_user -> user_login;
}

add_filter('login_redirect', 'user_profile_page'); ?>

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

لینک به ارسال
در 12 ساعت قبل، mortezaazimi گفته است :

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

The page isn't redirecting properly

ببینید منکه خدمتتون عرض کردم برای اینکه کارتون رو اصولی درست انجام بدید حتما باید برنامه نویس براتون انجامش بده ری دایرکت صحیح مراحلی داره که باید تو قالبتون اعمال شده باشه 

موردتون به این سادگی نیست که بشه با یه راهنمایی انجامش داد 

کاری که شما خواستید :

نقل قول

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

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

http://site.com/-imanfakhar

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

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

لینک به ارسال
در 5 ساعت قبل، imanfakhar گفته است :

ببینید منکه خدمتتون عرض کردم برای اینکه کارتون رو اصولی درست انجام بدید حتما باید برنامه نویس براتون انجامش بده ری دایرکت صحیح مراحلی داره که باید تو قالبتون اعمال شده باشه 

موردتون به این سادگی نیست که بشه با یه راهنمایی انجامش داد 

کاری که شما خواستید :

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


http://site.com/-imanfakhar

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

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

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

لینک به ارسال

کد رو به اینصورت تغییر بدید و چک کنید 

فایل index.php  را باز کنید و قبل از تمام کدها این کد را وارد کنید و تست کنید 

<?php
global $user_login, $user_level;
$usersingle = '-'.$user_login;
if(is_user_logged_in() && $user_level<8 && !is_page($usersingle)) {
$location = 'Location: '.get_bloginfo('url').'/'.$usersingle;
header($location);
exit;
}
?>

این کدها رو هم به فایل functions.php قالب

function restrict_admin_with_redirect() {
$usersingle = '-'.$current_user->user_login;

	if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
		wp_redirect( site_url($usersingle) ); 
		exit;
	}
}

add_action( 'admin_init', 'restrict_admin_with_redirect', 1 ); 

 

لینک به ارسال
در 15 ساعت قبل، imanfakhar گفته است :

کد رو به اینصورت تغییر بدید و چک کنید 

فایل index.php  را باز کنید و قبل از تمام کدها این کد را وارد کنید و تست کنید 


<?php
global $user_login, $user_level;
$usersingle = '-'.$user_login;
if(is_user_logged_in() && $user_level<8 && !is_page($usersingle)) {
$location = 'Location: '.get_bloginfo('url').'/'.$usersingle;
header($location);
exit;
}
?>

این کدها رو هم به فایل functions.php قالب


function restrict_admin_with_redirect() {
$usersingle = '-'.$current_user->user_login;

	if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
		wp_redirect( site_url($usersingle) ); 
		exit;
	}
}

add_action( 'admin_init', 'restrict_admin_with_redirect', 1 ); 

 

 

تست کردم نشد. باز هم همون مشکل ارور رو داره

لینک به ارسال

تعجبی نداره 

روش همینه ولی اگر قرار بود شما به درستی بتونید کار یه برنامه نویس رو انجام بدید تعجب داشت اینرو باید مدیر آموزشگاهتون هم بدونه 

لینک به ارسال

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

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

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

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

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

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

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

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

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