WooCommerce Pay Per Post


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.

This plugin creates a custom field which you simply need to fill in the product id number, or multiple product id numbers, which are needed to be purchased in order view the post.

It checks to make sure the user is logged in, AND has purchased that particular product before. If they have, they see the general post content. If they have NOT purchased they are then displayed a Oops page with a buy now button for the product.


We also have 2 shortcodes for displaying ALL of the posts/pages that are available for purchase, along with a shortcode to show only all the pages/posts that a user has purchased.

[woocommerce-payperpost template='purchased']

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

[woocommerce-payperpost template='all']

This outputs an unordered list of the posts that can be purchased by a user.


This plugin DOES require WooCommerce to be installed and active. I have tested this with the latest version to date Version 2.6.11.


  • Settings Screen
  • Frontend view of Pay Per Post NOT Purchased
  • Frontend view of Pay Per Post PURCHASED
  • Shortcode view Admin
  • Shortcode view Frontend


  1. Activate the plugin through the Plugins menu in WordPress
  2. In Settings->WooCommerce Pay Per Post settings, update the content which you would like to display when user has not purchased content.
  3. In WooCommerce->Products find the product ID of your product that you would like to associate with a post/page and copy it.
  4. Go to Page or Post and you should see a field to enter in your product ID.


Question: Can this plugin work with custom post types?
Answer: Yes, this plugin worked with all custom post types.

Question: How do you link to your post after an order has been placed.
Answer: What I have done in the past is use the Order Notes for the product in WooCommerce. So what will happen is after they purchase, on the Payment Received page they will see the order notes, and they will get sent in the receipt also.
So for instance, I have a Vimeo video that I embed in a page, on the Vimeo Product in WooCommerce I add the Password and notes on how to view the video, they gets transmitted via email and on the thank you page for the user.

If you have any questions please feel free to reach out to me at mattpram@gmail.com or submit a ticket on the support board.

As of right now, there is no questions posed.


Great Plugin

It works ! which rarely happens even with many premium paid plugins.

I would like to purchase the PRO version where and how can I purchase the pro version ? Thanks.

One of a kind

This plugin was exactly what we needed. It works flawlessly and we’re able to sell access to streaming media by using this plugin. I had one support question which was answered in just a matter of hours.

Matt, thanks for all your hard work and make this one available for the WP community!

Lies alle 17 Rezensionen

Mitwirkende & Entwickler

„WooCommerce Pay Per Post“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt.




  • Tested WordPress 4.7 Compatibility
  • Tested WooCommerce 2.6.11 Compatibility
  • Laid the ground work for many new features
  • Delay Restriction Coming Soon in PRO version
  • Page View Restriction Coming Soon in PRO version
  • Post Expiry Restriction Coming Soon in PRO version


  • Added in a „Do Not Protect“ option to the dropdown of the PPP Meta box. You can now select that to remove restrictions from post.


  • Changed the way I query the products to display the meta box on the admin pages. This should correct issue with other plugin meta boxes not displaying previously inputted data.


  • Changed the logic on custom post types. Instead of including all post types by default and allowing users to exclude specific post types. I now include only page, and post by default and then let users INCLUDE specific post types.
  • Not sure why I didn’t program it that way to begin with. Sorry all!


  • Updated the PURCHASED Shortcode to work with all custom post types by default. Uses same Exclude post type functionality from settings screen.
  • Fixed PHP Warning message due to type


  • Excluded WooCommerce default custom post types from adding PPP Meta Box on.
  • Added in field in settings for users to be able to exclude specific custom post types.


  • Quick fix for the multiple select field for product ID. Add in nopaging=true.


  • Made it so if you are an ADMIN you can view the post content. If you need to see what the Oops screen looks like, just use a non logged in user.
  • Add in support for all registered custom post types, so you now do not need to hack the plugin to make it work for your custom post type!
  • Made it easier to enter in product ids, you now have a multiple select box instead of just a text field
  • Confirmed support for WordPress 4.3
  • Confirmed support for WooCommerce 2.4.5


  • Added in the ability for multiple product IDs per post/page *
  • Updated FAQ Section *


  • Removed the pagination from the products listed out on the purchased page. *


  • Fixed error displaying when debug mode is enabled for Missing argument 2 on get() function *


  • Initial Release