PrivateContent Premium Plans add-on

Documentation for v1.24 and later


Before going through documentation chapters, thanks for purchasing PrivateContent Premium Plans add-on and trusting LCweb!

Need further help?

Open a ticket

Need a customization?

Ask for a quotation


To run this add-on you must have installed at least WooCommerce v2.5

Create plans

Plans visibility in registration forms

To enable and use the add-on you must have at least one plan that can be chosen in frontend forms

Plans visibility in renewal form

You may choose to exclude certain plans from renewal form

Avoid renewal?

You may avoid renewal on specific plans. Once users subscription ends, user won't be able to re-enter privateContent

Product pages

PrivateContent plans are totally removed from your webite.
They don't have an URL nor can be listed, are uniquely used by PrivateContent forms

Setup Settings

Trial period

It applies to any plan and is stored individually for every user.
Then if you increase trial period, it will be applied only to new users.

Billing fields association

Is based on additional fields registered in PrivateContent engine. You can use User Data add-on or create them through API

Existing users association

Bulk applies a plan to existing users not associated with the add-on. Remember you can do it individually in "edit user" page.
Be careful: newly associated users will be put in "unpaid" status and need to pay to login in PrivateContent again.

Custom suggested plan

You can also change default suggested plan in frontend plans. Use pcpp_plan parameter in URL + plan ID

Users Management

By default existing users aren't involved in add-on checks. This means they will still be able to login.
Is possible to associate a plan globally in Premium Plans add-on settings or individually editing an user.

Once associated with a plan, users will require an active subscription to be able to login. Statuses are

Expired Unpaid Trial Active

Then only users with active or trial status can login into PrivateContent.

Assigned plan, status and expiration date can be changed in "edit user" page.

Here you can also check user orders history and eventually delete past orders.
Some useful notes about manual status change:

  • If user has got unpaid status and you manually set it as expired or active - associated order will be set as cancelled
  • Unpaid status can only be set if user's last order hasn't been paid

However status depends also from user's active order status (active order is the first one shown in table, in previous image).
This means:

  • if you set it as paid - user status will be set as active
  • if you set it as cancelled - user status will be set as expired
  • in any other case - user status will be set as unpaid

Already existing users can be associated to plans directly in "edit user" page, individully.
Otherwise in Settings page there's a little wizard to bulk assign a plan to any not-associated user.

Be careful: for each new association a new order will be set up and users will be placed in unpaid status
Then, they have to pay for their subscription in order to keep logging into PrivateContent.

Subscription's Renewal

Owning Mail Actions add-on or the Bundle Pack you can also enable the subscription expiration notification directly in Mail Action settings

Premium Plans add-on has got an automated subscription's renewal system.
This means as soon as user has got expired status, in login message they will be able to create a new order and pay it, without delays.

Then, by default, renew will be performed on same plan.
However, in settings, you can change this behavior and allow plan's change.

  1. create a brand new wordpress page
  2. compose it as you prefer and finally use [pcpp-change-plan] shortcode to show plan's change form
  3. select that page in related settings option

Plan-based Content Restrictions

Creating plans you will be able to set specific restrictions requiring them, or also define further restrictions on an already restricted page.

Each category-selection dropdown used to specify some restriction will now have plans listed.
Let's take this restriction's wizard, in a normal WP page editor:

This page has been restricted to be visible by "User Cat 1" users OR belonging to "intermediate level" plan.

This is valid across any category-based restriction system and using pc_user_check() API function.
Then is automatically integrated in categories, pages, posts, menus and widget restriction wizards. Obviously also in privateContent shortcode.

Extra Shortcodes

These shortcodes can be used in pages directly through PrivateContent's shortcode wizard:


Prints currently logged user's plan

[pcpp-subscr-expir date_format="j F Y"]

Prints currently logged user's plan expiration date. The optional date_format parameter can be used to specify a different date format from your website's global one. You must use PHP syntax.

Let's assume the subscription is gonna expire on 20 May 2018 and you use "l, F j, Y", the result would be:
Sunday, May 20, 2018

[pcpp-subscr-expir type="cdown"]

Prints currently logged user's plan expiration countdow. For example if plan is gonna expire in 14 days, it will return "2 weeks"


The plugin is 100% multilanguage for both front and back ends. If a translation of your language has been created, WordPress will automatically switch between languages.
Plus it is compatible with WPML, Polylang and qTranslate!

How to create a translation

If you have WPML + String Translation add-on or Polylang, you can simply scan the plugin and translate strings via its UI.

Otherwise: go in the plugin folder, you'll find a folder called "languages".
Inside you'll find the default.pot file. It contains english strings to be translated.

If you want to create or customize your language translation, follow these steps:

  1. Open the default.pot file with POedit
  2. Edit the catalog by inserting your data and setting translation's language
  3. Save the file with your language's i18n identifier and "pcpp_ml-" prefix (the italian example is pcpp_ml-it_IT)
  4. Go to the plugin folder ".. wp-content/plugins/private-content-premium-plans/languages" and paste and paste resulting .PO and .MO files

If you create new translations, please contact me at sending your .PO and .MO files.
Otherwise they will be lost in next updates. Thanks!

LCweb - Copyright © 2021 - All Rights Reserved