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

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

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

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

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

 

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

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

 

راه اندازی تنظیمات تغییر مسیر کاربران به صفحات دلخواه

یک پوشه پلاگین جدید در فهرست 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 به این معنی است که حتی اگر کاربران وارد شوند و سعی در دسترسی به مدیریت وردپرس پیدا نمایند باز هم نمی توانند کاری کنند و به محلی دیگر منتقل می شوند.

بررسی کد 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$

;[0]role_name        = $current_user->roles$

}(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$

;[0]role_name       = $current_user->roles$

}(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 آماده شده است را در اختیار داریم.

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

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *