Metered Paywall with WordPress

Paywalls. I have so much to say about Paywalls.
Metered Paywalls like on the
and theare considered the most effective way to monetize your content.
Basically, you offer the new user a free pass to your website, for a selected number of content views.

Paywalls are sophisticated UX-focused client javascript programming, and you can bet that your client wants full control of the paywall visual messaging and general settings. A good custom paywall is in the neighborhood of $7,500 – $15K, it’s reported that the NYT spent $20M on their paywall, and if you would like a metered paywall on your website, we’ll offer you a 10,000% discount on our custom WordPress paywall programming.


Recently, MariasPlace.com offered us the opportunity to rebuild their content-based, membership website. Maria’s Place is local social-impact company and provides Senior activity ideas and community connection for caregivers, and we leapt over a building at the opportunity to work with a female-led social-impact company from right here in Colorado.

Building an effective Metered Paywall with WordPress is currently available (June 2017). After hours of research and testing, we chose to start this project is with Membership2 and using a plugin called TinyPass by Piano.io


Now once you install the TinyPass plugin, you signup and receive an account at the TinyPass Dashboard.
What an amazing and simple little dashboard Piano.io has produced there.

I appreciate that it makes it easy for Clients to use this dashboard and configure their own messaging on their website. From the outside, I think it’s really nice for a powerful metered Paywall solution, at a fraction of the cost (TinyPass charges 7% + $0.30/transaction).

Now how do you use this metered Paywall with WordPress? TinyPass reads the Post Tags. Simply Tag your WordPress Pages and Posts you want behind the Metered Paywall. Quick and easy.

How do you show a [Login] button that changes to a [My Account]? The documentation drops away here. It’s not easily possible in WordPress.  WHAT?  What if I try to read the TinyPass cookie? You can’t, they removed cross-domain cookie access as a security measure in all recent browsers.

It took a couple messages but this is the solution I found on how to use the TinyPass Dynamics to change login button. This can also hide/show the viewable state of objects like WordPress menu items.

How do you launch the TinyPass Curtain from a button? The documentation drops away here.
If you’d like to allow your users to click a button to launch the curtain you can do it with the following code:
<a onclick="getTPMeter().showOffer();return false;">Subscribe</a>

Simply use the following code for a button or an image link:
<a onclick="getTPMeter().showOffer();return false;"><img src="http://graphic... jpg" /></a>

Now what about the WordPress Users Bridge? If you use the TinyPass Login, all your customer info is at TinyPass. There is NO WordPress User Bridge. I asked Piano Support about a WordPress user bridge and they sent me to TinyPass API Documentation, which is advanced, minimal for WordPress (PHP) and assuming this isn’t your first PHP API integration. Overall, I prefer when a programming company can explain how to integrate this API. Zoom.us has amazing API Documentation.

How do you identify if your User is logged in? There are a couple ways to do this. The Dynamics Tab of the TinyPass Dashboard offers a CSS Class to use to test for isAccessGranted().  Or you can create add a custom TinyPass API login-check function to your If you don’t have a child theme, you need one immediately. To start on your API built, Move the TinyPass PHP API framework to your website. Reference the API, add your SecretID’s, and get your website connected with TinyPass REST API.

We stopped here once we realized the next stages were to build a WordPress TinyPass REST API User Bridge. We did not continue this programming, as the client chose to move in another direction and we are now implementing Ultimate Membership Pro as the core of this website. Now it’s time to build on this new WordPress Membership plugin. Ultimate Membership Pro is quite powerful right out of the box. It has a sophisticated Automated Marketing section, where you can customize your user messages for 30-50 different situations.

So long TinyPass. It was real. We spent a lot of time getting to really work with you, and now you’re just some programming that I used to know.


As a writer’s note, a Metered Paywall website is not a true content lockdown. Crawlbots and other robotic surfers can often get through a Paywall. This is true for NYTimes and the LATimes. This is good and important for search engine ranking your premium content website.

If you want to try to peel apart a Paywall load, I recommend using NoScript browser plugin, and surfing over to LATimes or NYTimes and choose to [deny] loading of their Paywall Javascript.

From my perspective, this is probably not to worry about. Your customers are probably not using NoScript, unless you are targeting web savvy 20-40 year old males. Then the usage is as high as 25-35% in savvy areas. LATimes and NYTimes, and anyone else with a porous Paywall, I have ideas on how to specifically handle this beautifully. Contact me.

Do you need to hide your content from even the search engines?

If you 100% need to protect your content, I recommend you look into Membership2 or a Learning Management System like WP Courseware. These systems completely hide your selected content.

Comments (2)

Nice post! Any idea how you will make a metered paywall with ultimate membership pro? It doesn’t look to have that feature built in.

Having not done this before, this is all speculation.
The paywall accessible content would need to be public.

I would create a session var on the single.php and post.php pages, to count the views per page.
Then I would program a custom paywall modal box, counting the PHP User Sessions on each Content pages.
Then trigger the paywall after a set number is set in the PHP SessionVar.

If there was a counter in the corner, I would refresh the value with each pageload, from the Post/Single SessionVar.
We built a custom Paywall about 2 years ago, and used it with WordPress.

Are you interested in communicating further about this?

Leave a comment