WordPress Pay Per Post Plugin (CMPPP) + WordPress MicroPayments (CMMP) - Use Case - Creating a Paid Articles Site With Subscriptions
Creating a Paid Articles Site With Subscriptions Using WordPress Pay Per Post Plugin and WordPress MicroPayments
This use case requires these to be installed and activated:
- WordPress Pay Per Post plugin - To block content. This document uses version 2.3.5
- WordPress MicroPayments - To send charge users and send them to checkout. This document uses version 1.9.2
- Subscriptions are not automatically renewed. Once a subscription expires, users should buy a new one
- You can lock any type of post (post, page and even pages created from other plugins)
The WordPress Pay Per Post plugin gives the ability to charge users for accessing content on your site.
By using it with WordPress MicroPayments, you can let users pay for access with their digital wallets.
How It Works
To allow payments, the plugin uses either EDD (Easy Digital Downloads) or WooCommerce. Both plugins are free and grant access to payment gateways such as PayPal and Stripe (note that some gateways might be paid)
TIP: Can I Lock Only Posts? Or Pages Too?
You can lock any content type: post, page, and even custom post types from other plugins!
For the sake of brevity, we mostly use "post" in this article and in the plugin interface.
Use Case Assumptions
In this example use case guide, we'll cover how to charge users with points to have access to parts of your website, such as pages or posts.
We also consider you bought the plugin, but not installed it, and that you have not installed either EDD or WooCommerce.
- Installing the plugin
- Setting up WordPress MicroPayments
- Choose - Charge for accessing each post or for the whole website
- Create options for prices (also called subscriptions)
- Select price for accessing your post or posts
- Define what is shown before payment
- Restrict part of the content (shortcode)
- Allow users to receive refunds
- Set notifications for new subscriptions
- Admin View - Manage subscriptions
- Restrict content created with other plugins
- Translate the interface by changing labels
Installing the Plugin
The process is the same for all CM plugins and add-ons.
- Download the add-on from your customer dashboard.
- Log in to WordPress and navigate to the WordPress Admin → Plugins settings.
- Click on Add New.
- Activate it and add the license.
Setting Up WordPress MicroPayments
After installing the WordPress MicroPayments, every registered user is given their own wallet.
Don't forget to set up digital wallets properly to use the integration to its fullest potential.
- Follow the basic video tutorials WordPress MicroPayments (CMMP) - Video Tutorials - CreativeMinds Products Documentation
- Check the general settings WordPress MicroPayments (CMMP) - General Settings - CreativeMinds Products Documentation
- Give the virtual currency a name WordPress MicroPayments (CMMP) - Getting Started - Labels (Choosing The Point Name, Translating The Text Users See)
Full documentation: WordPress MicroPayments (CMMP) - CreativeMinds Products Documentation
TIP: MicroPayments Wallet Page Shortcodes
Some shortcodes that are useful to place in the "My Wallet" page.
[cm_user_balance]to show how many points the user has on his wallet.
[cm_user_balance_value]to show how much money the wallet is worth.
[cm_user_wallet]to show the latest transactions on the wallet.
MicroPayments Plugin OR EDD/WooCommerce
It's not possible to use both WordPress MicroPayments and direct payments WooCommerce/EDD at the same time.
If you have both installed, there will be settings for both, but in practice the WordPress MicroPayments will take over and users will only be able to pay with points.
Choose - Charge For Accessing Each Post or For Whole Website
The first decision we have to make is how to charge users.
So let's head to the Pay Per Post Settings → General tab, where you can configure just that in the Subscriptions section.
- User purchases access for each post - Edit a post to set a price for it
- User purchases access for groups of posts - Create a price group, then edit a post to assign it
User purchases access for either individual posts or groups of posts - Edit a post to either assign an individual price or a price groupEffectively, it's a combination of the previous two
Create Options For Prices
How It Works
- Create a price option
- Assign it to a post
- (Optionally) Create a pricing group and bundle multiple posts into it
In the plugin settings you can define several options: create groups and set its pricing. In the following example, both groups have different subscription tiers.
TIP: For Decimals, Use Periods
When setting prices with decimals, use periods (.), and not commas.
- Good example: 2.99
- Bad example: 2,99
TIP 2: Period Options
You can create options in: minutes, hours, days, weeks, months, years and lifetime
TIP: Section is Empty?
If there's no option to create a pricing group, ensure these plugins are activated:
- WordPress Pay Per Post Plugin
- WordPress MicroPayments
Select Price For Accessing Your Post or Posts
Time to determine which posts are locked behind a paywall.
First, create or edit the relevant post.
Then, scroll down to the CM Pay Per Posts: Micropayments Pricing metabox.
Which options (1 and 2) are available on each post depends on the settings:
- Setting a price group
- Optionally, set one price that will apply only to this post
Now, you should edit each content to set its pricings.
Example: Post With Multiple Pricings
First, we edit the desired post.
Then, we check the metabox CM Pay Per Posts: Micropayments Pricing and add the price option. In this case, there are two:
- Pricing group "MicroPayments"
- Individual price - lifetime access 20 points
Now, users will be prompted to pay before accessing the content.
Define What Is Shown Before Payment
Back in the General tab, you can choose what is shown to visitors before they pay.
Hide full post in frontend - Hides the full post (starting from the Read More tag) until the user pays for the access.
Highlighted Backend vs. Frontend Example
- Hide comments before purchase - Hides also the comments of the post
- Use post excerpt - Displays the excerpt (see more below)
- Show full post in preview - Shows the whole content when the post is seen as preview (for instance, draft). Useful for writers and editors
With the following excerpt
The excerpt is shown before the pay box:
Also in this tab, you can set:
Reload Browser When Subscription Expires - If enabled, script will check in the background if the subscription is still active and reload the browser when it expires or user has been logged-out to disallow further reading post.
Allow Subscription Form for Guest User - Note that this setting only applies to the Direct Payment (EDD/WooCommerce) integration.
Restrict Part of The Content
You can also o restrict only sections of the content - for instance, the second and third paragraphs of a post.
If the user is not a subscriber, he/she will see a "Restricted Section" box instead of the locked content. A paybox will be triggered at the end of the content. This is done via a shortcode.
How to Use the Shortcode
Locking the content is easy. Simply surround it with the shortcode, as shown:
[cmppp_restricted] any content [/cmppp_restricted]
You can use the shortcode many times in the same content.
TIP: Customizing the Text
You can customize the text of the restricted section box
This is done via the labels settings → Restricted Shortcode section.
When using the Elementor page builder, it's necessary to use this shortcode to block any page on top of assigning the post to a price (see How To - Assign a Post to a Price/Subscription (Video).
This limitation is due to Elementor not using the _content hook.
Allow Users To Receive Refunds
You can allow users to receive some time after paying for access.
How it Works
- Refunds are not moderated - they are automatically granted.
- You can choose how much time the user has to request the refund.
User clicks the Refund button...
...Chooses a reason...
To set it up, click on the Refund tab.
- Enable refunds - Turns on the feature
- Refund reasons - Create new refund reason by creating new field and filling unique flag (left field) and text label (right field).
- Time limit to allow refund - Set the time limit in minutes to allow refund for users that activated a subscription. After this time user won't be able to refund.
Once set user will be able to view a refund link on the post / pages he has been subscribed to. Once clicked he will need to mark the reason for the refund before it is applied.
Set Notifications for New Subscriptions
It's important to notify both the admin and users when new subscriptions are active. The plugin always sends notifications to users and you can the admin alerts on or off.
Click on the Notifications tab.
1) For The Customer
Choose the email subject and message
2) For the Admin
Enable/disable, choose the email(s) to notify (separated by comma). Finally, also configure both subject and message.
In both cases (customer or admin) you can customize the email subject and template using placeholders:
- Email subject
- [blogname] - WordPress defined bog name parameter
- [postname] - WordPress defined post name.
- [username] - The username which subscribed
- [userlogin] - The WordPress user login
- [startdate] - Subscription start date
- [enddate] - Subscription end date
- [duration] - Subscription duration
- [points] - Points amount paid for subscription
- Email body template
- The same placeholders as above plus
- [home] - Website home URL
- [permalink] - The post URL
- The same placeholders as above plus
Admin View - Manage The Subscriptions
The admin can track all active subscriptions at any time.
Navigate to the Admin Dashboard → CM Pay Per Posts Pro → Subscriptions.
This page displays the subscriptions that have been added. Subscriptions are listed by pricing group, post, user, start, end, duration, points and action.
TIP: Manual Subscription
Add New - Click the Add New button to add a new subscription to the page. This option support adding a subscription manually.
You need to indicate a post which already have a pricing group assigned to it, indicate the username and the duration. Adding a manual subscription let you also add non paying users to the subscription.
Letting Users Manage Their Subscriptions (Shortcode)
Each user can also view his active and past subscription. You need to create a page which includes the shortcode
- WordPress Pay Per Post Plugin (CMPPP) - How To - Show User's Active Subscriptions (Shortcode) - CreativeMinds Products Documentation
- WordPress Pay Per Post Plugin (CMPPP) - Extras - Subscriptions History
Restrict Content Created With Other Plugins
In the WordPress Pay Per Post plugin, you can restrict any post type, even the ones managed by other plugins. This means that you can restrict content from other plugins if it uses said post types.
We Can't Guarantee Compatibility
Note that is a general rule. We cannot guarantee compatibility with all third-party plugins, as that involves code we don't control.
The technical requirements are:
- Plugin must register post_types - To show the post type in Pay Per Post's settings
- Plugin's custom type must be editable from the Back-End - To enable the subscription metabox
- Plugin must use the "the_content" filter on the Front-End - Only this content will be restricted
Choosing Post Types to Restrict
Head to General tab → Post types section. There, choose which post types to support.
This list fetches all post_types. If you can't find one related to a plugin, it means the plugin doesn't register its content as post_types.
Example: WordPress Glossary Plugin
Users have to pay to access the whole term page of a term managed by the WordPress Glossary Plugin.
Term Page is Restricted
The plugin allows you to translate or adapt the language shown to the users of your site.
Head to Settings → Labels and edit all relevant text.
There are dozens of labels in the following categories
- Pay Box
- Restrict copying content
- Restricted Shortcode
- Restrict Post Availability
TIP: Price Placeholder
The payment labels may, naturally, include the duration and price of the access.
To solve this, we use the placeholders %s for duration and .%.2f for price.
The %.2f expression is special. 2f means there are two decimals. You can change it extensively.
Examples with the cost $2.15
Learn more: Settings - Labels
Prevent Users From Copying Content
It's possible to restrict users from copying locked content. If the user tries to copy it, he/she will see a disclaimer message instead.
Under the General tab, you will find the option Prevent users from copying content. Choose Yes:
TIP: Modifying the Label
You can modify the text of this disclaimer in the Labels settings.
Restrict the Number of Purchases
You can restrict the number of purchases for your posts. This means that only a set number of users can make a purchase.
To limit the number of users that can make the purchase, navigate to the plugin settings. Under the General tab, you can find the section Post Availability.
To activate, set the option Allow to set limit the post availability for users to Yes. Under Max user number limit, set the maximum number of users you want your post to be available for. Set the number above 0, because if you set it at 0 or below, there will be no limit.
If you want to show a message to your users once the maximum number has been reached, set Allow to set message with limit to Yes.
TIP: Modifying The Label
To set a custom message once the maximum number of users has been reached, from the labels tab. Under it, navigate to the Post Availability section.
You can set a general message, or a message that states the number of buyers that have purchased your post.
Showing Availability via Shortcode
You can show if a post is available or not to the current user by using the shortcode
ID should be replaced with the ID of the post. Learn how: General Support - WordPress - Finding ID of Post/Page/Other Content
Elementor Page and Other Themes Troubleshooting
The plugin will not work or will require special settings when used together with themes that don't implement the "the_content" hook/filter. They are a minority.
So far, this has been reported in the Elementor Page Builder and some other themes.
To block a page that uses the Elementor page builder, it's necessary to both:
- Assign the post to a price (see How To - Assign a Post to a Price/Subscription (Video).
- Use the [cmppp_restricted] shortcode to block the relevant part of the content. Learn more: How To - Restrict Sections Of The Content (Shortcode)
Doing only one of the procedures will cause problems such as triggering the The Content Area Was Not Found in Your Page error. Learn more: The Content Area Was Not Found in Your Page - Docs | Elementor
Other Themes Fix
It's necessary to place the "the_content" hook/filter in the theme templates.
This is an advanced procedure that should be handled preferably by your theme designer.
Adding the_content Snippet
<?php the_content(); ?>
- How To Add Filters | Plugin Developer Handbook
- the_content() | Function | WordPress Developer Resources
- General Support - Advanced - Creating and Editing Custom Templates - CreativeMinds
TIP: Learn More About the_content
Below we show a page where users must pay to receive access.