User Roles and Permissions (Capabilities)
User Roles & Permissions (Capabilities)
AB Split Test does not register any custom capabilities. It relies entirely on standard WordPress capabilities, which means it works out of the box with any role-editing plugin (PublishPress Capabilities, Members, User Role Editor, and similar) or with roles you define in code via add_role(). This page lists exactly which capability gates each feature, so you can build a scoped role for team members without giving them full administrator access.
The short version
- The built-in Editor role can already do all day-to-day testing work: create tests, edit variations, start/stop tests, and view results, heatmaps and reports.
- Only the plugin’s Settings, Audiences, and AI/licence configuration screens require an administrator (
manage_options). - A/B tests are stored as a custom post type (
bt_experiments) that uses the Pages capability set — so in a role editor, the “Pages” checkboxes are what govern who can create and edit tests.
Capability map
| Feature | Required capability |
|---|---|
| Create, edit, publish and delete A/B tests (the AB Split Tests admin menu) | Pages capabilities: edit_pages, edit_others_pages, publish_pages, edit_published_pages, edit_private_pages, delete_pages |
| View results dashboards, manage tests via admin actions (start/stop, reset stats, duplicate), see the front-end preview/editor bar, view heatmaps and recordings | edit_posts |
| Optimization Hub (AI insights submenu) | edit_posts |
| Edit or delete a specific test | edit_post / delete_post on that test (mapped through the Pages capabilities above) |
| Upload images for variations | upload_files |
| Create shareable public report links | edit_pages, plus edit access to the specific test |
| Plugin Settings page (licence, tracking, integrations) | Administrator (manage_options) |
| Audiences (segmentation) management | manage_options |
| AI Test Ideas generator, Agency Hub | manage_options |
| Settings via REST API / WP-CLI / MCP, and advanced MCP tools | manage_options (network admin on multisite when network-activated) |
| Saving raw/unfiltered HTML in variation content via the API or MCP | unfiltered_html (otherwise content is sanitized like a normal post) |
Recommended role setup
To let team members run tests without administrator access, either assign them the Editor role, or create a custom role (e.g. “A/B Tester”) with these capabilities:
readedit_posts— unlocks the plugin’s dashboards, admin actions and front-end editor baredit_pages,edit_others_pages,publish_pages,edit_published_pages,edit_private_pages,delete_pages— full control of A/B testsupload_files— variation images
In most role-editor plugins these appear under the Posts, Pages and Media sections (for example, in PublishPress Capabilities they’re the Posts/Pages/Media rows of the Editing and Deletion tabs). You will not see a separate section for AB Split Test: because the plugin deliberately reuses the Pages capability set rather than inventing its own, the Pages permissions are the ones that control access to tests.
Note: if your tests target pages built with a page builder (Beaver Builder, Elementor, Bricks), the user also needs whatever permissions that builder requires to edit the underlying page.
What stays admin-only, and why
The Settings page (licence key, API keys, tracking configuration), Audiences, and the AI configuration are gated behind manage_options because they change site-wide behaviour and hold credentials. We recommend leaving these with administrators rather than granting manage_options to a testing role — that capability effectively unlocks all WordPress settings, not just ours.
Developer filters
For finer control, the plugin exposes a few filters you can drop in a small mu-plugin:
// Restrict non-admin users to seeing only the tests they authored
add_filter( 'abst_authors_see_own_posts', '__return_true' );
// Change which capabilities allow viewing all variations on the front end
// (default: edit_posts or edit_pages)
add_filter( 'bt_can_user_view_variations', function( $caps ) {
return [ 'edit_pages' ];
} );
// Change the capability required for advanced MCP tools (default: manage_options)
add_filter( 'abst_mcp_advanced_required_capability', function() {
return 'edit_others_pages';
} );
Multisite
When the plugin is network-activated, the licence and settings screen moves to the Network Admin and requires a super admin (manage_network_options). Per-site test management works exactly as described above on each subsite.
Questions about a permissions setup we haven’t covered? Contact support — we’re happy to help you scope a role.