Lock any part of your site behind a paid membership. Pick the content you want to hide, group it, and sell access as a recurring subscription.

You can take content that’s already on your site (a listing, a section, some text, an image) and hide it until someone buys a membership. Members see it. Everyone else gets a locked card that points them to your memberships page.

It runs on top of your normal Listeo and WooCommerce setup. A membership is just a WooCommerce product with recurring billing, the same engine used by recurring listing packages. Setting up your provider (Stripe, Paddle, Polar, Dodo) and Merchant of Record is covered in the provider articles. This one assumes a provider is already active.


How it works

Here’s what the plugin does on the frontend.

  1. You point at the content. A visual capture mode lets you select basically ANY visible element to be locked. The plugin saves them as a protected section, a group of elements that unlock together.
    Visual capture mode
    Example: Opening Hours Locked
  2. You attach the section to a membership. A membership is a recurring product. One membership can unlock several sections.

    Membership Popup
  3. A visitor opens the page. The plugin checks if any locked element is on the page, and if this visitor is allowed to see it.
    The locked card shows a lock icon and a short message that you configure in Visual Capture Mode.  The message is a link to default memberships page (or custom page), where the visitor can buy access.

    An example of locked Opening Hours

    An example of locked address
  4. Access is checked per visitor. Admins always see everything. A logged-in visitor gets access only with an active subscription to a membership after purchase.

    Buy Membership
  5. Blocked content is swapped out before the page loads. The real element is replaced with a locked card.

    The hidden text or image never reaches the browser. It is not just hidden with CSS.

Access follows the subscription. When a membership lapses or is cancelled, the visitor loses access and sees the locked card again. New subscriptions, renewals, cancellations, and trial endings all sync to Listeo through your provider’s webhooks.


Where to set it up

Open the Paywalls tab. The Paywall packages card lists every membership you’ve made, with its price, provider, checkout status, and what it unlocks. You create memberships and open the capture tools from here.

Memebrship access settings

The two steps

  1. Create a membership and connect provider product ID from payment provider
  2. Capture the content you want to lock.

Each step is below.


Step 1: Create a membership

Click Add paywall package. Fill in the popup:

  1. Package name – What members see, like “Premium Membership.”
  2. Price – The recurring price.
  3. Billing interval – Monthly, Yearly, or Weekly.
  4. Description – Optional text shown on the membership card.

Save, and the membership package is created as a recurring WooCommerce product without need of even touching WooCommerce product settings!

Creating new package

Note The payment provider is set globally, not per package. Use Configure product to set the provider’s price ID and other details. It works the same as recurring listing packages. See the Stripe, Paddle, Polar, and Dodo setup articles.

Stripe Setup →
Paddle Setup →
Polar Setup →
Dodo Payments Setup →

Add product/price ID from payment provider

Step 2: Capture the content

Capture mode lets you select literally any front-end element to lock.

Click configure access
Open capture mode

On the membership, click Configure paywalls. In the Capture URL field, enter the page that holds the content (defaults to your home page), then click Open capture mode. The page opens in a new tab with the capture overlay on it. You can browse around, and it stays active across pages.

Create a protected section

Hover over any element and click add

Locked elements live in groups (protected sections). Everything in a group unlocks together. In the Paywall capture sidebar, click Add group, name it in the Protected section field, and add it.

Use one group for everything that should unlock together. For example, all the locked parts of a premium listing under one “Premium listing details” section.

Add elements

Hover over any element (a heading, image, button, or whole section) and it highlights. Click it (or its + button) to capture it. A small Element Details form opens:

  1. Element Title – Filled in automatically (Heading, Image, and so on). You can change it.
  2. Element Name – A label so you recognize it later.
  3. Locked message – The text on the locked card. Defaults to “This content is locked.”
  4. Paywall group – Which group it belongs to.

Repeat for every element you want to lock.

Capture elements and groups

Tip Lock content that stays the same across page loads. To protect a whole type of page instead of one spot, capture an element those pages share.


The memberships page

The plugin adds a Memberships page where visitors browse and buy. It shows up in the Listeo dashboard menu and uses the shortcode [listeo_paywall_memberships], so you can drop it on any page too.

Each membership is a card with its name, description, price, and an Unlocks: list. The button changes per visitor:

  1. Buy now – For visitors without the membership. Logged-out visitors log in first, then checkout.
  2. Manage – For current members, linking to their subscriptions.
Membership Page

When a visitor clicks a locked card, they land here with the right membership highlighted and a prompt to choose one. After buying, they go back to the page, now unlocked.

Pricing Tables Elementor Widget

You can create custom membership page showing all benefits where you can add memebrship packages using elementor widget: Pricing Table WooCommerce

Pricing Table WooCommerce