0
سبد خرید شما خالی است

دسترسی کامل به گراویتی فرم برای نقش کاربری دلخواه در وردپرس

آموزش وردپرس 23 دی 1399

 

یکی از مشکلات در گراویتی فرم این هست که امکان دسترسی کامل به گراویتی فرم یا تعیین دسترسی به بخش های مختلف 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);

 

در کد بالا، زیرمنوهای مربوط به ایجاد فرم، تنظیمات، برون‌بری، راهنما و وضعیت سیستم حذف شده است.

در صورتیکه بخواهید میتوانید زیرمنوهای مذکور را اضافه کرده و یا نقش های کاربری دلخواه خود را نیز به کد بالا اضافه کنید.

منبع: Allow Editor to export entries

 

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

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