Gate documents by membership plan Pro

Restrict a category or a document to holders of a MemberPress, Paid Memberships Pro, WooCommerce Memberships, Restrict Content Pro or s2Member plan.

Updated September 1, 2026

If your site already sells access, the membership plugin already knows who has paid. FileDeck can ask it directly, so you do not have to keep a second list in step by hand.

Tick a plan on a category or a document, and holders of that plan get in.

Supported plugins

Plugin What you pick
MemberPress Memberships (products)
Paid Memberships Pro Levels
WooCommerce Memberships Membership plans
Restrict Content Pro Membership levels
s2Member Access levels 1–4 (cumulative — level 3 covers 1 and 2)

FileDeck detects whichever of these is active. If more than one is running, plans from both appear in the same list and you can mix them.

Gating a category

Edit a document category (Documents → Categories) and tick one or more plans under Client area — membership plans. Every document filed in that category, and in its sub-categories, then requires one of those plans.

This composes with the other client-area rules rather than replacing them. Named people, groups, email domains and plans are an OR: someone gets in if any one of them matches. <!– claim-ok: verified by the integration suite — "an individually named person still gets in alongside a plan" –>

Gating a single document

On the document editor, set Visibility to Specific users and tick a plan under Or a membership plan. Same OR: you can name individuals and a plan on the same document.

Access follows the membership

The plan is checked when the page is drawn, not copied onto the document at the moment you tick it. When a membership lapses, the access goes with it — the document leaves the reader’s library and the download stops working. Renewing restores it, with nothing to re-tick. <!– claim-ok: verified by the integration suite — "SECURITY: when the membership lapses the access goes with it" –>

A gated document is hidden rather than padlocked: a reader without the plan does not see the title in a library listing. <!– claim-ok: verified by the integration suite — "SECURITY: and its title never reaches their library" –>

Client portal

A plan-gated category shows up on the client portal for the people whose plan admits them, alongside areas they were named in individually. <!– claim-ok: verified by the integration suite — "and the portal lists that area for them" –>

If the membership plugin is deactivated

FileDeck asks the membership plugin the question. With the plugin gone there is no answer, and a gated document stays hidden rather than becoming public. Your rules are preserved: reactivating the plugin restores access without re-ticking anything.

Adding another membership plugin

Any plugin can register itself:

add_filter( 'filedeck_membership_providers', function ( $providers ) {
	$providers['acme'] = 'Acme Memberships';
	return $providers;
} );

// The plans an admin can pick, as id => label.
add_filter( 'filedeck_membership_plans_acme', function () {
	return array( 'gold' => 'Gold', 'silver' => 'Silver' );
} );

// The plan ids one user currently holds.
add_filter( 'filedeck_membership_user_plans_acme', function ( $ids, $slug, $user_id ) {
	return acme_plans_for( $user_id );
}, 10, 3 );

Plans are stored as provider:idacme:gold. The same list answers both the access check and the query that decides which rows a reader sees, so the two cannot disagree.

Still stuck? Email support@getfiledeck.com.