

یکی از مشکلات در گراویتی فرم این هست که امکان دسترسی کامل به گراویتی فرم یا تعیین دسترسی به بخش های مختلف Gravity Form برای نقش های کاربری مختلف وجود ندارد.
درواقع در قسمت تنظیمات افزونه قسمتی برای ویرایش دسترسی های کاربران و نقش های کاربری (User roles) مختلف به فرم ها و تنظیمات خود افزونه تعریف نشده است.
به همین خاطر وقتی شما به کاربری مثلا نقش کاربری «ویرایشگر» را در وردپرس می دهید، شخص مذکور صرفا میتواند به برخی از بخش های دسترسی داشته باشد و برای مثال ورودی های فرم ها را مشاهده کند.
اما این شخص نمیتواند اقدام به برون بری ورودی های فرم مورد نظر خود بکند.
این محدودیتی است که از داخل تنظیمات خود گراویتی فرم قابل ویرایش نیست.
اما با استفاده از کد زیر شما که به فایل functions.php اضافه می شود، میتوانید دسترسی کامل گراویتی فرم را به نقش کاربری دلخواه خود بدهید:
$role
= get_role(
'editor'
);
$role
->add_cap(
'gform_full_access'
);
با این کد به نقش کاربری «ویرایشگر» دسترسی کامل به Gravity Form و بخش های مختلف آن داده خواهد شد.
اما اگر میخواهید این دسترسی را شخصا محدود کنید، میتوانید زیرمنوهای مربوط به گراویتی فرم را برای نقش کاربری مذکور حذف کنید:
$role
= get_role(
'editor'
);
$role
->add_cap(
'gform_full_access'
);
add_action(
'admin_menu'
,
function
() {
$user
=
new
WP_User(get_current_user_id());
if
(!
empty
(
$user
->roles) &&
is_array
(
$user
->roles) && in_array(
"editor"
,
$user
->roles)) {
remove_submenu_page(
'gf_edit_forms'
,
'gf_new_form'
);
remove_submenu_page(
'gf_edit_forms'
,
'gf_settings'
);
remove_submenu_page(
'gf_edit_forms'
,
'gf_export'
);
//native csv import/export
remove_submenu_page(
'gf_edit_forms'
,
'gf_help'
);
remove_submenu_page(
'gf_edit_forms'
,
'gf_system_status'
);
}
},9999);
در کد بالا، زیرمنوهای مربوط به ایجاد فرم، تنظیمات، برونبری، راهنما و وضعیت سیستم حذف شده است.
در صورتیکه بخواهید میتوانید زیرمنوهای مذکور را اضافه کرده و یا نقش های کاربری دلخواه خود را نیز به کد بالا اضافه کنید.
دیدگاهتان را بنویسید