طراحی و بهینه سازیمشاهده

درگاه پرداخت

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

آموزش ها , مقالات,آموزش,ترفند , وردپرس
استفاده از نقش های کاربری در وردپرسReviewed by جواد on Oct 31Rating: 4.5استفاده از نقش های کاربری در وردپرسدر حال حاضر برای مدتی است که نقش ها بخشی جدایی ناپذیر از وردپرس شده اند. بسیاری از توابع مرتبط با مدیریت آنها از نسخه ی ۲٫۰٫۰ مورد استفاده بوده است. با وجود داشتن قدمت طولانی اما آنها به ندرت مورد استفاده قرار گرفته اند و این امر از آنجایی که آنها اجازه ی نصب آسان را به انواع کاربرهای سفارشی می دهند، شرم آور است (و همچنین توانایی مدیریت میکرو هم دارند).

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

واژگان

اصلیترین اصطلاحاتی که باید بدانید “نقش” و “قابلیت” هستند. قابلیت ها هسته سیستم هستند، آنها همه ی کارهایی که شما می توانید انجام دهید را نشان می دهند. یک مثال از این قابلیتها switch_themes است. کاربری که دارای این قابلیت است قادر به تغییر ظاهر وب سایت با استفاده از بخش Appearances در مدیر سایت (admin) است. کسانی که این قابلیت را ندارد قادر به انجام این کار نخواهند بود.
نقشها به سادگی یک مجموعه نام گذاری شده از قابلیت ها هستند. تصور کنید که شما دارای قابلیت هایی مانند edit_post، add_user و غیره هستید. به جای قرار دادن همه ۵۰ تای آنها برای هر کاربری که شما می خواهید یک admin باشد، می توانید به سادگی برای هر کاربر نقش admin تعریف کنید و سپس تمام قابلیتهارا به آن نقشها اضافه کنید.

راه اندازی پیش فرض (Default)

به طور پیش فرض، وردپرس دارای شش نقش و حدود ۵۷ قابلیت است. هر نقش دارای ترکیب متفاوتی از قابلیت ها است که به هر کاربرحقوق و امتیازات مناسبی اعطا می کند.
به عنوان مثال، یک شرکت کننده می تواند پیام های خود را ویرایش و حذف نماید، اما نمی تواند زمانی را که این پستها منتشرمیشوند، کنترل کند (و زمانی که آنها منتشر شوند دیگر نمی توانید آن را حذف کند). این امر به این دلیل است که آنها قابلیت های edit_posts و delete_posts را دارند اما قابلیت های publish_post و delete_published_post را ندارد.
بر روی راه اندازی پیش فرض (default setup) ارائه شده توسط وردپرس، به خوبی فکر شده است و نباید اصلاح شودو فقط باید اضافه شود. اگر آن تغییری ایجاد کنید، ممکن است بعدها با مشکلات دشوار روبرو شوید:مشکلاتی مانند این که یکی از مشترکها قادر به حذف پست از وب سایت شما باشد، و یا ادمینی که قادر به تغییر تم ها نباشد.

چه مواقعی نقش های جدید و قابلیت ها مورد نیاز میباشند

معمولا نقش های جدید با قابلیت های جدید پشت سر هم می آیند. معمولا اول ما مجموعه ای از قابلیت های جدید که توسط ادمین کنترل می شوند را ایجاد می کنیم (و همچنین یک نقش جدید). اجازه دهید با یک مثال ببینیم:
اگر شما یک وب سایت بزرگ دارید، این احتمال وجود دارد که شما یک تیم بازاریابی دارید. این تیم نیازی به داشتن قابلیت ویرایش و انتشار ندارد، اما آنها نیاز به دسترسی به آمار های تبلیغاتی، روند به موضوعات جستجو، و غیره را دارند. شاید دادن اجازه به آنها برای مدیریت دسته ها و نظرات برای مقاصد SEO و رضایت مشتری، سودمند باشد.

اولین کار ما این است که وضعیت تبلیغات و روند جستجو را زیر نظر داشته باشیم. این چیزی نیست که وردپرس به طور پیش فرض ارائه می دهد ، بنابراین اجازه دهید فرض کنیم که این امر به عنوان یک پلاگین (plugin) ساخته شده است. بیایید یک قابلیت به نام view_stats ایجاد کنیم. این قابلیت به تیم بازاریابی و البته به ادمین داده می شود. دیگر کاربران – مانند سردبیران و نویسندگان – لازم نیست که آمار را ببینند (که در بسیاری از موارد، داده های حساس هستند) بنابراین این قابلیت به آنها داده نخواهد شد.

حتما بخوانید  نمایش آخرین مطالب یک سایت در سایت دیگر وردپرسی

وظیفه دوم ما این است که تصمیم بگیریم که بازاریابهای ما چه قابلیت های دیگری را نیاز دارند. بر اساس فرضیات ما در بالا، آنها قابلیت manage_links، read و manage_categories و moderate_comments را نیاز دارند.

در نهایت، ما را از برخی تکه کدهای ساده برای ایجاد یک نقش جدید به نام “بازاریابی” استفاده می کنیم، و قابلیت های ذکر شده در بالا را به آن اختصاص میدهیم. به محض این که این کارانجام شود، ما قادر به تعیین نقش “Marketing” به هر کاربر در صفحه “اضافه کردن کاربر” و “ویرایش مشخصات” خواهیم بود.
توابع پایه وردپرس
برای مدیریت موثر نقش ها و قابلیت ها، همه آننچه که شما نیاز دارید، پنج تابع بسیار ساده است.
• add_role() — شما را قادر به اضافه کردن یک نقش سفارشی میکند
• remove_role() — شما را قادر به حذف کردن یک نقش سفارشی میکند
• add_cap() — شما را قادر به اضافه کردن یک نقش سفارشی میکند
• remove_cap() — شما را قادر به حذف کردن یک قابلیت سفارشی از یک نقش میکند
• get_role() — گرفتن اطلاعات درباره ی یک نقش و همچنین قابلیت های همراه

اگر شما تمایل به دیدن مستندات مربوط به این توابع دارید، می توانید نگاهی به Roles و Capabilitiesدر بخش Codex بیندازید.

پیاده سازی نقش ها و قابلیتهای جدید

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

اضافه کردن نقش ها و توانمندی ها

 

 

تابعی که در بالا آمد نقش جدید “بازاریابی” ما را اضافه می کند. این امر چهار قابلیت که در حال حاضر در وردپرس گنجانده شده و یک فابلیت پنجم که یک قابلیت سفارشی است را می افزاید. همانطور که می بینید، هیچ برنامه نویسی خاصی برای اضافه کردن custom caps نیاز نیست، فقط آنها را در هنگام اضافه کردن نقش در array وارد کنید. زمانی که ما نقش جدید اضافه می کنیم، مطمئن شویم که قابلیت های جدید مان را به نقش ادمین هم اضافه می کنیم.

توجه داشته باشید که تابع add_role() یک موضوع WP_Roleرا به موفقیت برگرداند یا اینکه اگر نقش در حال حاضر وجود دارد آن را به NULL برگرداند.
از آنجا که کد بالا را در یک پلاگین استفاده می شود، بهترین راه استفاده از آن، استفاده از قلاب(hooks) است، و برای اضافه کردن قابلیت به administrator فقط زمانی که ما برای اولین بار نقش ایجاد میکنیم.

 

 

چک کردن قابلیت ها و نقش ها

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

 

حتما بخوانید  نوشته های یک زمینه دلخواه

کد بالا یک منوی سطح بالا به بخش مدیریت برای آمار صفحه بازاریابی اضافه خواهد کرد. تابع add_menu_page() به شما اجازه میدهد که یک فابلیت را تعیین کنید(سومین استدلال) که مشخص میکند که آیا منو نشان داده شود یا نه.
توجه داشته باشید که حتی اگرخود تابع add_menu_page() قابلیت را به عنوان یک استدلال در نظر بگیرد، ما همچنان به چک کردن آن در تابع نیاز داریم که نشان دهنده ی محتوای صفحه میباشد.
این به سادگی ما را به دو تابع بعدیمان راهنمایی میکند: current_user_can() و user_can().

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

اگر شما می خواهم بررسی کنید که آیا یک کاربر دلخواه دارای یک توانایی خاص است یا نه، از تابع user_can() استفاده کنید:

برای اضافه کردن به توانایی ها، هر دو تابع همچنین می توانند نقشها را چک کنند:

 

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

در هنگام نوشتن یک اصطلاح رسمی، من نقش های مختلف را، زمانی که آنها نیاز به بسیاری از تغییرات در ابتدا و انتها دارند، “انواع کاربرها” مینامم. برای مثال فرض کنید که شما در حال ایجاد یک تم مرکز فروش هستید. جدای از administrator که مسئول نظارت بر همه است (و نویسندگان که در وبلاگ شرکت می نویسند) شما همچنین خریداران و فروشندگان دارید. اینها هر دو کاربران ثبت نام شده در وب سایت شما هستند، اما تا حدودی نیازهای front-ends آنها با هم متفاوت است.
صفحه مشخصات یک خریدار به احتمال زیاد تعدادی از چیزهایی را که او خریداری کرده است، یا اینکه هر چند رقت یکبار اقدام به خرید کرده است و چه زمانهایی به سیستم وارد شده است نشان می دهد، ، او همچنین یک لیست از دانلودها را میبیند.
صفحه مشخصات فروشنده، نمونه کارهای او، محبوب ترین آیتم او، واز این قبیل خواهد بود. هنگامی که او به صفحه اش وارد می شود احتمالا باید آمار فروش را ببینید.

کشف کردن نقش ها و مجوز ها

برای ساده کردن موارد ، کاربران یا خرید میکنند و یا می فروشند، و نمی توانید هر دو کار را با هم انجام دهند. اجازه دهید دو نقش با مجموعه ای از قابلیت ها ایجاد کنیم:

 

حتما بخوانید  چندین ترفند کاربردی برای وردپرس

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

پیاده سازی ظاهر

از اینجا به بعد موضوع استفاده از نقش ها و توانایی های ما در بررسی توابع برای تعیین این که چه کسی چه چیزی را ببیند است. بیایید نگاهی به دو نمونه و مثال بیاندازیم:

فهرست کردن کاربران

اگر ما تمام کاربران وب سایت را لیست کنیم، می توانیم اقلام خریداری شده برای خریداران و مواردفروخته شده را برای فروشندگان نشان دهیم. دراینجا نشان میدهیم چگونه می توان این کار را انجام داد:

بسیاری از کد ارائه شده در بالا، همان HTML قدیمی ساده است، اما نکته مهم برای از استفاده بردن این است که چگونه counter ایجاد میشود.
توجه داشته باشید که get_purchases_count() و get_sales_count() ساختگی هستند(البته آنها بخشی از وردپرس نیستند).
البته، در یک مثال دنیای واقعی ما باید مطمئن شویم که تنها خریداران و فروشندگان فهرست شده باشند، و ممکن است نیاز داشته باشیم که به طور کامل یک قالب جداگانه برای آنها ایجاد کنیم(اگر تفاوت ها به اندازه کافی متعدد هستند).

 

هنگامی looping از طریق کاربرانمان در بالا، بسته به نقش کاربر یا userlist-buyer.php ویا userlist-seller.php استفاده خواهد شد.

نتیجه گیری

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


به کانال تلگرام بیست اسکریپت بپیوندید !

دانلود

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

مطلب مفیدی بود ؟
نویسنده : admin تاریخ : 1392/08/9 0 آموزش ها , مقالات,آموزش,ترفند , وردپرس

لینک کوتاه مطلب : http://www.20script.ir/?p=1157

کلمات کلیدی پست :
درگاه پرداخت
مطالب مرتبط
2,254انتشار دومین شماره ماهنامه طراحی وب تاریخ : 1393/02/18
1,635دانلود افزونه وردپرس UserCredits نسخه 4.1 تاریخ : 1394/02/5
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت ها
قالب دخترونه و آرایش
قالب زیبای ماشین
قالب فانتزی و طنز چِشم
قالب دختر رویایی
قالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درخت
قالب دختر زیبا
قالب پسرونه غمگین
قالب عاشقانه قلب