رفتن به مطلب

ساخت پروفایل | پیشرفته


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

سلام دوستان

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

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

ممنون

لینک به ارسال

1. این فایل را دانلود و آن زیپ کنید توی روت قالب

Profile.zip

2. از فایل page.php قالبتون یک کپی تهیه کنید و این کد را در بخش داخل حلقه اون کپی کنید

<?php

//load the function that updates the data

require_once (TEMPLATEPATH . '/Profile/profile.php');

//load the functions that upload and update the image

require_once (TEMPLATEPATH . '/Profile/profile_image.php');

//check if the user is logged in

if ( is_user_logged_in() ){

//enter page to use to redirect

$redirect = '?page_id='.get_the_ID(); //by id

//$redirect = 'profile'; //by page slug

//media_upload_library_form($e);

//get current user information

wp_get_current_user();

$user_id = $current_user->ID;

$meta = get_user_meta($user_id, 'profile');

$meta = $meta[0];

$profile_image = get_user_meta($user_id, 'profile_image');

$profile_image = $profile_image[0];

//check if image upload button was pressed

if ( isset( $_POST['html-upload'] ) && !empty( $_FILES ) ) {

profile_image_upload($redirect,$user_id,$profile_image);

}

//check if the submit button was pressed

if (isset($_POST['submit'])) {

//email validation

if(is_email($_POST['USER']['user_email'])){

//if yes, call to update the data

update_data($user_id,$redirect);

//if email is invalid, tell the user

}else{$message .= 'Invalid%20Email:%20'.$_POST['USER']['user_email'];wp_redirect( home_url().$redirect.'&update='.$message );}

}

?>

<h2>

<?php if(!empty($_GET['update'])){ echo $_GET['update'];}//let the user know if data is updated ?>

</h2>

<h4>Welcome, <?php echo $current_user->display_name; ?></h4>

<?php profile_image_display("medium",$profile_image); ?>

<h2></h2>

<!-- The Image Upload Form -->

<ul id="image-upload">

<form class="image-upload" id="file-form" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="POST">

<li id="async-upload-wrap">

<label for="async-upload">Upload</label>

<input type="file" id="async-upload" name="async-upload"> <input type="submit" value="Upload" name="html-upload">

</li>

<!-- multiple file handling

<li id="async-upload-wrap">

<label for="async-upload">Upload</label>

<input type="file" id="async-upload" name="async-upload[]">

</li>

-->

<li>

<!-- multiple file handling <input type="submit" value="Upload" name="html-upload"> -->

<input type="hidden" name="post_id" id="post_id" value="1199" />

<?php wp_nonce_field('client-file-upload'); ?>

<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>" />

</li>

</form>

</ul>

<!-- End image upload form -->

<!-- The Web Form with user data filled in if any exists -->

<ul id="stylized">

<form class="profileform" method="post" action="">

<li><label for="first_name">First Name </label><input type="text" name="USER[first_name]" value="<?php if(!empty($current_user->user_firstname)){ echo $current_user->user_firstname;} ?>" /></li>

<li><label for="last_name">Last Name </label><input type="text" name="USER[last_name]" value="<?php if(!empty($current_user->user_lastname)){ echo $current_user->user_lastname;} ?>" /></li>

<li><label for="user_email">Email </label><input type="text" name="USER[user_email]" value="<?php if(!empty($current_user->user_email)){ echo $current_user->user_email;} ?>" /></li>

<li><label for="user_pass">Password </label><input type="password" name="USER[user_pass]" value="" /></li>

<li><label for="gender">Gender</label>

<select name="META[gender]">

<option <?php if($meta['gender']=='Neutral'){echo 'selected';} ?> value="Neutral">Neutral</option>

<option <?php if($meta['gender']=='Male'){echo 'selected';} ?> value="Male">Male</option>

<option <?php if($meta['gender']=='Female'){echo 'selected';} ?> value="Female">Female</option>

</select><li>

<li><label for="occupation">Occupation</label><input type="text" name="META[occupation]" value="<?php if(!empty($meta['occupation'])){ echo $meta['occupation'];} ?>" /></li>

<li><label> </label><input type="submit" value="Update Profile" name="submit"/></li>

</form>

</ul>

<!-- WEB FORM END -->

<div style="height:100px;"></div>

<?php

} //end if user logged in

//Else user is not logged in

else {

//we give a message telling the user the 'WHY' and the 'HOW'

echo '<h4>You must be logged in to view this page. </h4>';

?>

<a href="<?php echo wp_login_url( get_permalink() ); ?>" title="Login">Login</a>

<?php } //end else ?>

3. در ابتدای فایل کد زیر رو قرار بدید


<?php
/*
Template Name: Custom_Profiler
*/
?>

4. فایل رو ذخیره کنید و یک برگه با قالب Custom_Profiler منتشر کنید

لینک به ارسال

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


<li><label for="Example">Example</label><input type="text" name="META[Example]" value="<?php if(!empty($meta['Example'])){ echo $meta['Example'];} ?>" /></li>

به جای Example نام فیلد دلخواه رو بگذارید

6. با استفاده از متای کاربری profile در قالب یک آرایه می تونید نتایج فیلدها رو توی جاهای مختلف سایت نمایش بدید

نکته: این آموزش بر اساس میزان آشنایی شما با وردپرس و برنامه نویسیه و ممکنه کاربران دیگه نتونند به راحتی ازش استفاده کنند

لینک به ارسال

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


<li><label for="Example">Example</label><input type="text" name="META[Example]" value="<?php if(!empty($meta['Example'])){ echo $meta['Example'];} ?>" /></li>

به جای Example نام فیلد دلخواه رو بگذارید

6. با استفاده از متای کاربری profile در قالب یک آرایه می تونید نتایج فیلدها رو توی جاهای مختلف سایت نمایش بدید

نکته: این آموزش بر اساس میزان آشنایی شما با وردپرس و برنامه نویسیه و ممکنه کاربران دیگه نتونند به راحتی ازش استفاده کنند

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

بعد جطوری میتونم یه کاری کنم که وقتی کاربر لاگین شد، بدون اینکه من براش محدودیت کاربری در نظر بگیرم، بتونه توی برگه دیگه ای، نوشته هم ارسال کنه ؟

لینک به ارسال

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

لینک به ارسال

دسترسی ثبت نام شدگان رو بگذارید مشارکت کننده و اگه می خواهید برای ارسال مطلب هم وارد بخش ادمین وردپرس نشند و تو قالبتون برگه ارسال داشته باشید این رو بخونید:

http://codex-parsi.ir/%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B5%D9%81%D8%AD%D9%87-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%85%D8%B7%D9%84%D8%A8-1/

(چهار مطلب آموزشیه دنبال هم هست که زیر همین لینک لینکهای سه تای دیگه اش هم موجوده)

در چهارمین بخش فایل زیپ شده کدها هم برای دانلود قرار داره

لینک به ارسال

دسترسی ثبت نام شدگان رو بگذارید مشارکت کننده و اگه می خواهید برای ارسال مطلب هم وارد بخش ادمین وردپرس نشند و تو قالبتون برگه ارسال داشته باشید این رو بخونید:

http://codex-parsi.i...ی-ارسال-مطلب-1/

(چهار مطلب آموزشیه دنبال هم هست که زیر همین لینک لینکهای سه تای دیگه اش هم موجوده)

در چهارمین بخش فایل زیپ شده کدها هم برای دانلود قرار داره

مطالب رو دیدم ولی سطحی خوندم. گفتم اول ببینم به کار میخوره یا نه :D :D :D

و دیدم که عالیه :D :D :D

فعلا اون فایل نمونه ای که آخر گذاشته بودید رو دانلود کردم. بعد یه برگه با نامک content-load-by-ajax ساختم ولی صفحم لود نمیشه . 2 تا برگه دیگه درست میاد. ولی این content load by ajax نمیاد. صفحه سفید :)

لینک به ارسال

بعد چطور میتونم تنظیمات رو بیارم توی اون برگه ؟مثلا تصویر شاخص و برچسب ها و ...

ممنون

لینک به ارسال

اگر می شد فایل دانلود رو اول بگذارم که اینکار رو می کردم

فایل

content load by ajax نباید لود بشه اون فایل دستورات آژاکسی رو اجرا می کنه

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

لینک به ارسال

اگر می شد فایل دانلود رو اول بگذارم که اینکار رو می کردم

فایل

content load by ajax نباید لود بشه اون فایل دستورات آژاکسی رو اجرا می کنه

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

تا آموزش 3 رو خوندم. در مورد ارسال مطلب، زمینه های دلخواهش رو فهمیدم . ولی مثلا آپشن هایی که توی پنل مدیریت هست رو نمیشه اورد توی برگه ؟ مثلا تصویر شاخص و ...

لینک به ارسال

متوجه منظورتون نمی شم

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

تصویر شاخص ارتباطی به زمینه ها نداره و بحث دیگه ای داره

لینک به ارسال

متوجه منظورتون نمی شم

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

تصویر شاخص ارتباطی به زمینه ها نداره و بحث دیگه ای داره

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

لینک به ارسال

متوجه منظورتون نمی شم

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

تصویر شاخص ارتباطی به زمینه ها نداره و بحث دیگه ای داره

مثلا میخوام تا شماره 5 این عکس رو بیارم توی یه برگه که کاربر بتونه اینارو پر کنه

%D8%AF%D8%B1%D8%AC-%D9%86%D8%B8%D8%B1-%D8%B3%D9%86%D8%AC%DB%8C.jpg?a1fdb8

لینک به ارسال

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

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

لینک به ارسال

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

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

لینک به ارسال

زمینه زمینه است دیگه

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

لینک به ارسال

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

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

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

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

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

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

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

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

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