Newspack’s content gating features use WooCommerce Memberships and Subscriptions to enable paywalls, registration walls, and metering capabilities. These features offer robust customization options and a smooth user experience, so you can effectively engage readers, drive donations and/or subscriptions, and maximize revenue potential.
Before setting up content gating, you will need to do the following.
- Open a new thread in the #newspack-help channel in Slack to collaborate with the Newspack support team as you work through the steps to enable content gating. We’ll discuss your plans, goals, and strategy for adding and managing a gate.
- Work with the Newspack support team to set up WooCommerce Memberships. They will set this up for you, using settings that reflect the kind of content you want to restrict and how you would prefer to limit access.
- Set up the Reader Activation System (RAS), following our instructions to work through the steps under Newspack > Engagement > Reader Activation. Note: RAS’s defaults assume publishers collect donations; if you don’t, you’ll want to ignore and remove the donation-related prompts during setup.
Content Gate Setup
Once your TAM has established membership plans, you can configure your content gating settings to restrict access through registration, donation, or subscription.
Depending on your content-gating strategy and the membership plans you have set up, you can choose from several block patterns. You have the option to set up a registration wall, a donation wall, a paywall with one tier, a paywall with one tier and metering, or a paywall with two tiers.
If you have more than two plans available, we recommend choosing one or two plans to highlight in the gate, or using the Button block to link to a page that offers all of your options.
Getting Started
To set up your content gate, you’ll want to take the following steps.
- In WordPress admin, navigate to Newspack > Engagement. Under the Reader Activation tab, follow the link to Show Advanced Settings. Under Memberships Integration, in the Content Gate section, select the Configure link.
- Remove and/or replace placeholder content.
- Use the block inserter to add a block pattern for the type of content gate you’d like to configure. Choose one of the following options under the Patterns tab, in the Memberships category: Registration Wall, Donation Wall, Pay Wall with One Tier, Pay Wall with Two Tiers, or Pay Wall with One Tier and Metering. Configure your content gate block pattern, following the instructions below.
- Check the Settings panel at right to be sure the content gate displays as you want it. Under Styles, you can select whether it should appear as an overlay or inline, in sizes from Extra Small to Small, Medium, Large, or Full Width. You can also choose its position on the page. When the gate appears inline, you can check the box to “Apply fade to last paragraph,” to use a gradient above the content gate.
- Under Settings, choose how many paragraphs are available before the content gate. You can optionally select the “Use ‘More’ tag to manually place content gate” checkbox to add the content gate in place of a manually added More block. You can also optionally enable metering. Select the “Enable metering” checkbox, then configure how many views are available to unregistered and registered readers before logging in, as well as how often the count resets.
- Once you’ve updated these settings in your draft content gate, you can publish it, and it will take effect immediately.

Content Gate Block Patterns
Registration Wall Pattern
To use this type of content gate, select the Registration Wall block pattern. Then update the settings to configure it.

Update the copy and content as needed to highlight the benefits of registering with your site. This block pattern uses the Reader Registration block, which you should configure with the following details.
- Form settings: In the Input Placeholder field, you can optionally add a placeholder email address to show as an example in the Email Address field.
- Newsletter Subscription settings: When this block pattern is added, the toggle to “Enable newsletter subscription” is turned on by default. Folks who register to view content will be subscribed to the toggled subscription list. The option to “Display list description” is also toggled on by default, so any description for your subscription list will show. To simplify this, you can optionally toggle on “Hide newsletter selection and always subscribe.”
- Spam protection settings: Be sure to configure reCAPTCHA v3 through Newspack settings, to protect your form from spam. Once you’ve done so, you’ll see the following message here: “reCAPTCHA v3 is currently enabled.”
A gated article with an inline registration wall should look similar to this.

Once the reader registers through the form, the page will refresh and the content will be unlocked.
Donation Wall Pattern
To use this type of content gate, select the “Donation Wall” block pattern. Then update the settings to configure your donation wall.
Update the copy and content as needed to highlight why a reader should donate. This block pattern uses the Donate block, whose settings are configurable under the Settings panel at right.
A gated article with an inline donation wall should look similar to this.

Once the reader goes through the modal checkout flow to complete the donation, the page will refresh and the content will be unlocked.
Pay Wall with One Tier Pattern
To use this type of content gate, select the Pay Wall with One Tier block pattern. Then update the settings to configure it.

Update the copy and content as needed to highlight why a reader should subscribe. This block pattern uses the Checkout Button block, which you should configure with the following details.
- Button text: By default, the Checkout Button block includes the text “Subscribe for only $5/month!” You’ll want to update the text to reflect the pricing of the custom subscription product you use.
- Product field: You’ll need to connect the paywall with the custom subscription product your TAM previously created. Under the Settings tab, search in the Product field for the product’s name (e.g., “Premium Access Product”). Select the correct product from the search results that appear.
- Styles: Under the Styles tab, make any updates necessary to the style of your button.
A gated article with one tier configured using the checkout button should look similar to this.

Once the reader goes through the modal checkout flow to complete the subscription purchase, the page will refresh and the content will be unlocked.
Pay Wall with Two Tiers Pattern
To use this type of content gate, select the Pay Wall with Two Tiers block pattern. Then update the settings to configure it.

Update the copy and content as needed to highlight why a reader might subscribe to each plan. This block pattern also uses the Checkout Button block, which you should configure as described above for the Pay Wall with One Tier.
Pay Wall with One Tier and Metering Pattern
Metering is available for any type of membership tier configuration. The existing block patterns only cover one use case, however, which is for metering with a one-tier paywall. The block arrangement can be tweaked in the editor for your content gate to fit more tiers, but we recommend highlighting only one or two payment plans to help your readers avoid choice paralysis. If you would like to offer significantly more plans, we suggest using the Button block to link to a page offering all of your options.
Content Gate Settings
Several settings, summarized above, customize how your readers will see and experience the gate. Here’s a bit more detail on how to configure this.
Styles
The gate can be rendered inline or as an overlay. When Inline is chosen, you can add a gradient fade effect to the last paragraph above the gate.

The overlay mode displays the gate as a modal, shown over the article content.

The default setting uses the medium size, positioned in the center, but you can choose from a number of size and placement options.
Settings
The gate settings let you determine how much content will be accessible before the reader hits the gate.

Select the number of paragraphs that will appear before the gate under Default Paragraph Count. Alternately, check the “Use ‘More’ tag to manually place content gate” option if you want to use the More block to specify where the content gate will appear on specific posts.

As you configure the content gate’s settings, keep in mind that they apply to both inline and overlay styles.
Metering
Select “Enable metering” and use the drop-down menus that appear to determine how many articles can be viewed by unregistered and registered users in a specific time period.

Anonymous Versus Registered Readers
There is a distinct difference between metering access to restricted content for anonymous readers versus registered readers. To meter content access for unregistered readers, their anonymous sessions are tracked in the browser, which can be circumvented by users who visit your site in a browser’s incognito mode. Applying the meter to registered users is more secure and accurate, as it is based on user metadata stored in your site’s back end and associated with logged-in users.
We generally recommend that publishers encourage readers to register (through soft and/or hard registration walls) to allow for first-party data collection and a more personalized user experience. But whether you choose to do so will also depend on your business model and publishing strategy. Talk to your TAM before you set up content gating and metering to help align your goals and strategy with the available options.
A nice touch of Newspack’s metering feature is that even when the reader reaches the limit of available content within a given time frame, the articles they have accessed will continue to be available to them for that period. This courtesy is provided regardless of whether a reader is accessing your site anonymously or while registered and logged in.
Development
Method reference
Newspack\Content_Gate::is_post_restricted
Description
boolean Newspack\Content_Gate::is_post_restricted( $post_id )
Whether the post is restricted for the current reader.
Arguments
$post_id–int|null– The post ID to check. Default isnull, which will get from the global$post.
Newspack\Metering::is_metering
Description
boolean Newspack\Metering::is_metering()
Whether the restricted post (method above) should be allowed to render due to metering rules. This will always get the global $post and should only be used in a is_singular() context.
This method will also return true if the page is accessed by an anonymous user and anonymous metering is configured. This means the metering should happen via JavaScript.
JavaScript integration
When anonymous metering is enabled, the content restriction for unauthenticated readers is performed in the browser. When restricted, a metering_restricted RAS activity is dispatched, which can be hooked with an event listener in the RAS frontend library:
window.newspackRAS = window.newspackRAS || [];
window.newspackRAS.push( function( ras ) {
ras.on( 'activity', function( ev ) {
const { action, data } = ev.detail;
if ( 'metering_restricted' === action ) {
// Content restricted, do stuff here.
console.log( data );
}
} );
} );
Data payload
{
"post_id": "117", // Restricted post ID
"metering": { // Current metering configuration for the reader
"content": [ // List of allowed post IDs
"122"
],
"expiration": 1726887600 // Metering expiration
}
}
Example
<?php
if (
! \Newspack\Content_Gate::is_post_restricted() ||
\Newspack\Metering::is_metering()
) {
?>
<div class="my-restricted-content"></div>
<?php
}
window.newspackRAS = window.newspackRAS || [];
window.newspackRAS.push( function( ras ) {
ras.on( 'activity', function( ev ) {
if ( 'metering_restricted' === ev.detail.action ) {
const node = document.querySelector( '.my-restricted-content' );
if ( node ) {
node.remove();
}
}
} );
} );
