SadraHkm

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

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

سلام دوستان

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

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

ممنون

0

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


لینک به پست

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 منتشر کنید

2

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


لینک به پست

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 در قالب یک آرایه می تونید نتایج فیلدها رو توی جاهای مختلف سایت نمایش بدید

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

4

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


لینک به پست

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 در قالب یک آرایه می تونید نتایج فیلدها رو توی جاهای مختلف سایت نمایش بدید

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

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

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

0

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


لینک به پست

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

0

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


لینک به پست

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

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/

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

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

1

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


لینک به پست

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

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

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

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

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

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

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

0

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


لینک به پست

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

ممنون

0

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


لینک به پست

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

فایل

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

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

0

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


لینک به پست

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

فایل

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

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

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

0

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


لینک به پست

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

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

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

0

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


لینک به پست

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

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

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

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

0

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


لینک به پست

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

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

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

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

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

0

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


لینک به پست

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

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

0

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


لینک به پست

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

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

0

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


لینک به پست

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

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

1

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


لینک به پست

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

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

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

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


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

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

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


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