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:

  • read
  • edit_posts — unlocks the plugin’s dashboards, admin actions and front-end editor bar
  • edit_pages, edit_others_pages, publish_pages, edit_published_pages, edit_private_pages, delete_pages — full control of A/B tests
  • upload_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.

Leave a Comment

You must be logged in to post a comment.