Back to Community

How to Grant Access to a Single Plugin in WordPress (Without Making Users Admins)

47 threads Sep 16, 2025 PluginUser role editor

Content

A common challenge for WordPress site administrators is providing a user access to a single, specific plugin without granting them full administrator privileges. This is a frequent request for client sites, team members, or contributors who only need to manage bookings, update a calendar, or modify a form. Based on community discussions, this guide explains why this can be difficult and outlines the most effective strategies to achieve it.

Why Can't I Just Check a Box for a Plugin?

The core of the issue lies in how plugins are built and how WordPress handles permissions. WordPress uses a system of capabilities—fine-grained permissions like edit_posts or manage_options—to control access. Plugins don't appear as individual items in the role editor because they rely on these underlying capabilities.

Most often, the problem arises because many popular plugins use the powerful manage_options capability to protect their settings pages. As noted in discussions about plugins like WP Simple Booking Calendar and Redis Cache, granting this capability effectively gives a user near-administrator access to many parts of WordPress, defeating the purpose of limited access.

Common Solutions and Strategies

Your path forward depends entirely on how the target plugin was coded. Here are the most common solutions, from simplest to most complex.

1. Check the Plugin's Own Settings

This is the first and easiest thing to check. Some plugins, like Slider Revolution (as mentioned in a sample thread), have a built-in settings page where you can select which user role can access it. Look through the plugin's settings for an "Access" or "Permissions" tab.

2. Look for a Custom Capability Filter

Well-coded plugins provide a filter hook to change the capability they require. For example, a thread about WP Booking System shows a code snippet using the wpbs_menu_page_capability filter. You would need to:

  1. Identify if such a filter exists by checking the plugin's documentation or asking its support.
  2. Add a small code snippet to your theme's functions.php file or a custom functionality plugin to change the required capability to something more appropriate, like edit_pages for an Editor.

3. Create a Custom Role with Precise Capabilities

If the plugin uses a unique capability (not manage_options), you can create a new user role with User Role Editor. First, you must discover what capability the plugin uses. You can:

  • Ask the plugin's developer or support team.
  • Search the plugin's PHP files for keywords like current_user_can, add_menu_page, or capability.

Once you know the required capability, create a new role, grant it that single capability, and assign it to your user.

4. When a Plugin Uses manage_options: The Hard Limit

If a plugin hard-codes manage_options (as seen with CoSchedule and others), you cannot cleanly separate its access from other WordPress settings using capabilities alone. In this case, your options are limited:

  • Request a Feature from the Plugin Developer: Politely ask them to implement a custom capability filter for better access control.
  • Advanced Custom Code: A developer could theoretically use the map_meta_cap filter to create complex rules, but this is not a beginner-friendly solution.

Conclusion and Best Practices

Granting access to a single plugin is rarely a one-click process. The solution is dictated by the plugin's code.

  1. Always check the plugin's own settings first.
  2. Investigate whether the plugin offers a filter to change its required capability.
  3. If you must grant a powerful capability like manage_options, be aware that you are giving broad access to the WordPress backend. The only way to then hide other menu items would be through additional admin menu editing plugins or custom code.
  4. When in doubt, contact the support for the specific plugin you are trying to grant access to. They will know best how their product handles permissions.

Understanding this relationship between plugins and capabilities is key to managing your WordPress site's security and user access effectively.

Related Support Threads Support