تبلیغات تبلیغات
حراجی دامنه های ویژهمشاهده
آخرین ارسال های تالار مشاهده انجمن
افزونه Coins MarketCap 1 پاسخ 202 بازدید درخواست پلاگین 4 پاسخ 442 بازدید اسکریپت vfm 5 پاسخ 557 بازدید تغییر جهت محتوا در وردپرس 1 پاسخ 226 بازدید افزونه ساخت شماره مجازی 14 پاسخ 1086 بازدید درخواست افزونه 1 پاسخ 422 بازدید بهترین رباط اینستاگرام 0 پاسخ 2 بازدید درخواست قالب با سبک کندو 1 پاسخ 692 بازدید به هم ریختگی سایت بعد از نصب قالب 2 پاسخ 651 بازدید نمایش کد های php 0 پاسخ 413 بازدید
تبلیغات
تبلیغات تبلیغات

تغییر مسیر کاربران به صفحات دلخواه بر اساس نقش آنها

آموزش ها , مقالات,آموزش,ترفند , وردپرس

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

با توجه به تجربه ی من در توسعه ی وب، پاسخ به این سوال معمولا “نه” است.

امروز، قصد دارم به شما آموزش بدهم که چگونه مسیر یک کاربر را بر اساس نقش او، به یک صفحه ی سفارشی در وردپرس تغییر دهید. این مقاله کمی با سایر مقاله های 20اسکریپت تفاوت دارد چون در اینجا میخواهیم کمی یاد بدهیم که پلاگین را خودتان تولید کنید …

تغییر مسیر کاربران به صفحات دلخواه بر اساس نقش آنها

راه اندازی تنظیمات

اجازه دهید این کار را با ساخت یک افزونه شروع کنیم. شما باید این کار را در یک پلاگین انجام دهید زیرا این کار شبیه به این است که، طراحی تم خود را تغییر بدهید و هنوز هم بخواهید که توانایی تغییر قابلیت ها را هم داشته باشید. می دانید که اگر بخواهید هر گونه عملکردی را در طراحی کنونی تم جا دهید، باید آن را در یک پلاگین انجام دهید.
یک پوشه ی پلاگین جدید در فهرست wp-content/plugins خود، به نام ‘cm-redirect-by-role‘ ایجاد کنید و یک فایل به نام cm-redirect-by-role.php به آن اضافه کنید. ما قصد داریم که سربرگ افزونه ی وردپرس اولیه را به آن فایل اضافه کنیم.

<?php
/*
Plugin Name: Redirect Users by Role
Plugin URI:
Description: Redirects users based on their role
Version: 1.0
Author: SFNdesign, Curtis McHale
Author URI: http://sfndesign.ca
License: GPLv2 or later
*/

/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  ۰۲۱۱۰-۱۳۰۱, USA.
*/
// TODO ?>

 

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

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

به طور پیش فرض، نقطه ای که از آنجا یک کاربر می تواند به سایت وردپرس شما وارد شود از طریق http://yoursite.com/wp-login.php است. هنگامی که شما از آن مکان به یک سایت وارد می شوید، سایت، شما را به داشبورد مدیریت وردپرس می فرستد.

تغییر مسیر کاربران به صفحات دلخواه بر اساس نقش آنها

این بدان معنی است که مدیریت وردپرس در حال کار است و برای اینکه شما بتوانید کاربر را بگیرید، باید از یک عملکرد مدیریتی استفاده کنید. من همیشه از قلاب کردن عملکرد admin_init استفاده می کنم به این دلیل که، به اندازه ی کافی دیر اجرا می شود که شما به داده های کاربر دسترسی پیدا کنید اما آنقدر ها هم کند نیست که کاربر هیچ چیز در داشبورد نبیند.
استفاده از عملکرد admin_init بدان معنی است که حتی اگر آنها به سیستم وارد شده اند و سعی دارند که به مدیریت وردپرس دسترسی پیدا کنند، باز هم منحرف شده و به جای دیگری هدایت خواهند شد.
حالا اجازه دهید کدی را که می خواهیم از آن استفاده کنیم، کمی بررسی کنیم. به عنوان مثال: فرض می کنیم که می خواهیم مسیر تمام مشترکین را تغییر دهیم اما این امر باید با همه ی استانداردها و یا نقش های سفارشی در وردپرس کار کند.

/**
* Redirects users based on their role
*
* @since 1.0
* @author SFNdesign, Curtis McHale
*
* @uses wp_get_current_user()          Returns a WP_User object for the current user
* @uses wp_redirect()                  Redirects the user to the specified URL
*/
function cm_redirect_users_by_role() {

$current_user   = wp_get_current_user();
$role_name      = $current_user->roles[0];

if ( 'subscriber' === $role_name ) {
wp_redirect( 'http://yoursite.com/dashboard' );
} // if

} // cm_redirect_users_by_role
add_action( 'admin_init', 'cm_redirect_users_by_role' );

 

ما این فرایند را با گرفتن هدف فعلی کاربرمان با wp_get_current_user () شروع می کنیم. با انجام این کار، نام نقش را خواهیم گرفت و آن را به متغیر $ ROLE_NAME اختصاص خواهیم داد.
سپس بررسی می کنیم که آیا $ ROLE_NAME با نقشی که می خواهیم مسیرش را تغییر دهیم، مطابقت می کند یا نه. اگر چنین باشد، از wp_redirect برای فرستادن کاربر به جایی که خودمان انتخاب کرده ایم، استفاده می کنیم.
در حالی که این کار انجام می شود، هنوز یک قطعه ی دیگر وجود دارد که باید آن را اضافه کنیم.

AJAX   کردن آن

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

function cm_redirect_users_by_role() {

if ( ! defined( 'DOING_AJAX' ) ) {

$current_user   = wp_get_current_user();
$role_name      = $current_user->roles[0];

if ( 'subscriber' === $role_name ) {
wp_redirect( 'http://yoursite.com/dashboard' );
} // if $role_name

} // if DOING_AJAX

} // cm_redirect_users_by_role
add_action( 'admin_init', 'cm_redirect_users_by_role' );

 

در حال حاضر ما تابع تغییر مسیر خود را که به منظور بررسی برای ثابت DOING_AJAX آماده شده است، در اختیار داریم. در صورتی که تعریف شده است، ما در حال اجرا یک تماس AJAX و ما می خواهیم به جست و خیز کد تغییر مسیر.

نتیجه گیری

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

این مقاله چقدر براتون مفید بود؟

از ۱ تا ۵ امتیاز بدید.

میانگین رتبه 0 / 5. تعداد رای : 0

تا حالا کسی رای نداده! اولین نفر شما باشید.

دانلود

هاست ارزان، لایت اسپید، سرور مجازی منطبق با اسکریپت های 20script کلیک کنید >
مطلب مفیدی بود ؟
نویسنده : تیم محتوای 20اسکریپت 0 آموزش ها , مقالات,آموزش,ترفند , وردپرس
لینک کوتاه مطلب : https://www.20script.ir/?p=2053
کلمات کلیدی پست :
مطالب مرتبط
36,696قابلیت درج چندین لینک در بیو اینستاگرام با اسکریپت BioLinks تاریخ : 2021/06/19
9,081آموزش غیرفعال سازی جستجو در وردپرس با افزونه Disable Search تاریخ : 2017/08/12
16,626افزونه خبرخوان وردپرس Autoblog نسخه 4.1.1 تاریخ : 2017/06/19
15,530اسکریپت پشتیبانی تیکتینگ Support Centre تاریخ : 2017/08/19
8,093اسکریپت خبرخوان SimplePie نسخه ۱.۳.۱ تاریخ : 2015/12/17
12,351افزونه دریافت خودکار اطلاعات فیلم و سریال imdb تاریخ : 2014/06/25
4,108رفع خطای 503 Service Unavailable در وردپرس تاریخ : 2019/06/11
5,412حل مشکل کار نکردن دکمه افزودن پرونده چند رسانه‌ای در وردپرس تاریخ : 2018/05/6
8,828اسکریپت محاسبه ارزش و سود بیت کوین Bitcoin What If تاریخ : 2018/03/29
19,341قالب زیبای سایت علی دیزاین برای وردپرس تاریخ : 2014/05/14
3,560افزونه اشتراک گذاری رسانه در چندین سایت وردپرسی WordPress Multisite Shared Media تاریخ : 2019/10/24
8,804دانلود قالب شرکتی لیبرو Libero برای وردپرس تاریخ : 2018/11/8
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
تبلیغات
تبلیغات