ProNobatProNobat
ویژگی‌هاچطور کار می‌کندمستنداتراهنماها
خرید از راستچین
همه راهنماها
6 دقیقه مطالعه

نقش‌های سفارشی و دسترسی‌ها

مدل دسترسی پرونوبت و ساخت نقش‌های محدود واقعی با capability های `pronobat_view_reports` و `pronobat_staff_self`.

نقش‌های سفارشی و دسترسی‌ها

در این راهنما مدل دسترسی پرونوبت را می‌بینیم و یک نقش وردپرسی محدود می‌سازیم که با capability های واقعی افزونه کار می‌کند.

مدل دسترسی پرونوبت

دسترسی‌ها در پرونوبت درشت‌دانه هستند. ثابت‌های اصلی:

Capabilityاجازه می‌دهد
pronobat_manageمدیریت کامل — نوبت‌ها، سرویس‌ها، کارمندان، مشتریان، اعلان‌ها و تنظیمات
pronobat_staff_selfفقط مشاهده‌ی نوبت‌های خودِ کارمند
pronobat_view_reportsمشاهده‌ی گزارش‌ها و داشبورد
pronobat_view_paymentsمشاهده‌ی تراکنش‌های پرداخت (فقط خواندن)
pronobat_manage_paymentsاسترداد وجه
pronobat_financeدسترسی مالی (پیش‌فرض روی نقش Editor)

نکته‌ی مهم: ویرایش نوبت‌ها و ویرایش تنظیمات هر دو با همان pronobat_manage کنترل می‌شوند. پس نمی‌توان نقشی ساخت که نوبت‌ها را ویرایش کند اما به تنظیمات دسترسی نداشته باشد. برای دسترسی محدود، از نقش‌های فقط‌خواندنی یا نقش آماده‌ی «کارمند» استفاده کنید.

نقش‌های آماده

  • مدیر پرو نوبت (pronobat_manager) — همه‌چیز به‌جز استرداد وجه.
  • کارمند (pronobat_staff) — فقط مشاهده‌ی نوبت‌های خودش (pronobat_staff_self).

اگر یکی از این دو نیاز شما را برآورده می‌کند، کافی است نقش کاربر را در کاربران ← همه کاربران به آن تغییر دهید.


سناریو: دستیار گزارش‌ها (فقط‌خواندنی)

فرض کنید می‌خواهید کسی فقط بتواند گزارش‌ها و تراکنش‌ها را ببیند، بدون اجازه‌ی تغییر چیزی. این جداسازی شدنی است.

مرحله ۱: ساخت نقش سفارشی

کد زیر را در functions.php تم خود (یا یک افزونه‌ی سفارشی) اضافه کنید:

/**
 * ساخت نقش «دستیار گزارش‌ها» با دسترسی فقط‌خواندنی
 * این تابع یک بار اجرا می‌شود (هنگام فعال‌سازی تم یا افزونه)
 */
function my_create_pronobat_reports_assistant_role(): void {
    if ( get_role( 'pronobat_reports_assistant' ) ) {
        return; // اگر نقش از قبل وجود داشت، چیزی نساز
    }
 
    add_role(
        'pronobat_reports_assistant',
        'دستیار گزارش‌ها',
        [
            'read'                  => true, // دسترسی پایه وردپرس
            'pronobat_view_reports' => true, // مشاهده گزارش‌ها و داشبورد
            'pronobat_view_payments'=> true, // مشاهده تراکنش‌ها (فقط خواندن)
        ]
    );
}
add_action( 'init', 'my_create_pronobat_reports_assistant_role' );

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


مرحله ۲: اضافه کردن دسترسی به نقش موجود

اگر می‌خواهید دسترسی فقط‌خواندنی پرونوبت را به یک نقش موجود (مثلاً Editor) بدهید:

function my_grant_pronobat_caps_to_editor(): void {
    $role = get_role( 'editor' );
    if ( ! $role ) {
        return;
    }
 
    $role->add_cap( 'pronobat_view_reports' );
    $role->add_cap( 'pronobat_view_payments' );
}
add_action( 'init', 'my_grant_pronobat_caps_to_editor' );

مرحله ۳: اختصاص نقش به کاربر

رفتن به مدیریت کاربران

در وردپرس، به کاربران ← همه کاربران بروید.

ویرایش کاربر

روی نام کاربر کلیک کنید.

تغییر نقش

فیلد نقش را به نقش موردنظر (مثلاً دستیار گزارش‌ها) تغییر دهید.

ذخیره

به‌روزرسانی کاربر را بزنید.


جدول دسترسی‌ها برای نقش‌های محدود

Capabilityدستیار گزارش‌هاکارمند
pronobat_view_reports✅—
pronobat_view_payments✅—
pronobat_staff_self—✅
pronobat_manage❌ (دسترسی کامل)❌
pronobat_manage_payments❌❌

پاک کردن نقش (در صورت نیاز)

remove_role( 'pronobat_reports_assistant' );
همه راهنماهامستندات کامل

پرونوبت را همین الان امتحان کنید

یک نمونه کامل و زنده از افزونه با داده‌های واقعی — بدون نیاز به نصب.

خرید از راستچینمستندات
ProNobatProNobat

سیستم نوبت‌دهی آنلاین برای کسب‌وکارهای ایرانی

محصول

  • ویژگی‌ها
  • چطور کار می‌کند
  • قیمت‌گذاری

مستندات

  • نصب و راه‌اندازی
  • تنظیمات
  • راهنماها
  • شورت‌کدها
  • REST API
  • هوک‌ها

© ۱۴۰۵ ProNobat. تمامی حقوق متعلق به یوسف هاشم‌زاده است.

خرید از راستچین