Pay For Post with WooCommerce


Quickly and easily sell access to pages, posts and custom post types through WooCommerce with Pay For Post with WooCommerce. I originally created this plugin because I looked everywher

Last updated
Active installations
WordPress Version
Tested up to
PHP Version
Total ratings


Quickly and easily sell access to pages, posts and custom post types through WooCommerce with Pay For Post with WooCommerce. I originally created this plugin because I looked everywhere and I couldn’t find a plugin already out there, free or premium, that would do the simple fact of selling access to a particular page or post through WooCommerce. So I decided to write my own.


  • WooCommerce version 2.6+ to be installed and active
  • Guest checkout to be turned OFF
  • PHP 7.2+ is required

How It Works

Getting everything setup will take you less than 5 minutes with three simple steps.

  • Step 1 Create a product in WooCommerce
  • Step 2 Create a page or post in WordPress
  • Step 3 Associate your product with your page using the Pay For Post with WooCommerce meta box.

It’s that simple.

With the Premium version, you have several other options for protecting content like, time based, number of page views, etc.

How-to Videos

How-to Install and Configure

How-to Protect a Page/Post


You can view a front-end demo by going to if you would like to schedule an admin demo please visit and select Plugin Admin Demo.


  • Restrict content from pages, posts and custom post types based on if they have purchased a specific WooCommerce product
  • Ability to protect a single post or multiple posts with a single product
  • Ability to protect posts with multiple products
  • Simple to use
  • Uses native WooCommerce functionality to ensure future compatibility
  • Global restricted content message which is used for all protected content
  • Utilize any standard WooCommerce shortcodes
  • PREMIUM ONLY Ability to override Restricted Content Message on a per page basis
  • PREMIUM ONLY Delay Restriction – This allows you to delay the paywall from appearing for a set amount of time.
  • PREMIUM ONLY Page View Restriction – This allows you to limit the number of page views the user who purchased this product has before the paywall reappears. Options to specify over a set amount of time or forever.
  • PREMIUM ONLY Expiry Restriction – This allows you to specify an expiration on this post which would require the user to repurchase the product associated with this post.
  • PREMIUM ONLY Custom WooCommerce tab on the My Account page to list out all purchased content
  • PREMIUM ONLY Listing of purchased content on order receipt and order confirmation page
  • PREMIUM ONLY PolyLang Multiple Language support
  • PREMIUM ONLY Priority Support
  • PREMIUM ONLY Woo Memberships Support!
  • PREMIUM ONLY Woo Subscriptions Support!
  • PREMIUM ONLY Easily access all protected content and which users purchased them
  • PREMIUM ONLY Automatically add a lock icon to all protected posts
  • PREMIUM ONLY Show a list of content that gets unlocked by purchased product on product page.
  • PREMIUM ONLY Full Elementor Support. You can now protect every element differently on an Elementor page!

The premium version of this plugin consists of more advanced features to really get the most out of selling your pages and posts! To purchase the premium version please visit


[woocommerce-payperpost template='purchased']

This outputs an unordered list of the posts that have been purchased by the current user logged in.

There are several additional shortcodes available in the free and premium version. Take a look at for other available shortcodes.

Template Functions

IMPORTANT Out of the box this plugin will work with any theme which uses the standard WordPress function the_content(). For those themes that do not utilize the_content() you can use the following static functions in your templates.


This checks if the current user has access to the page. It returns true/false


This returns the content specified in the PPP Options.

For a full example of this take a look at