Plugin Licensing for Paid Memberships Pro

Sell WordPress plugins, issue license keys, & deliver automatic updates with Paid Memberships Pro.

Screenshots

When editing a Membership Level, the Other Settings section manages file downloads and activation limits associated with membership.
When editing a Membership Level, the Other Settings section manages file downloads and activation limits associated with membership.
A single license key manages all license and update requests to the store per user.
A single license key manages all license and update requests to the store per user.
Users can add and remove sites from their licenses.
Users can add and remove sites from their licenses.

Informs all users a new version is available for paying customers.

This screenshot shows a plugin with a pending update provided by a site selling plugins with Paid Memberships Pro. An Enable Updates plugin action link guides users to where they can enter a license key.
This screenshot shows a plugin with a pending update provided by a site selling plugins with Paid Memberships Pro. An Enable Updates plugin action link guides users to where they can enter a license key.

What it does

Frequent Questions

Who makes this software?

Plugin Licensing for Paid Memberships Pro is a Breakfast Company product made in Pennsylvania, USA 🇺🇸 by Corey Salzano. This product is an add-on for Paid Memberships Pro.

How is it licensed?

This plugin is 100% open-source GPLv2 software. The code is not obfuscated.

How do I connect my plugins to the store?

Here is a sample plugin with an updater you can use in your own projects.

Setup

  1. Install and activate Paid Memberships Pro.
  2. Install and activate this plugin, Plugin Licensing for Paid Memberships Pro.
  3. Edit a membership level at Memberships → Settings → Levels.
  4. Find and expand the Other Settings section.
  5. Use Add File to upload or attach a plugin zip. Use the Replace button to provide users with an updated version.
  6. Copy the generated file hash into the client plugin that should receive updates. Use the sample plugin as a guide to integrate the updater into your plugin.
  7. Instruct customers to enter their license key in the client plugin’s settings screen. License keys are found on the PMPro Membership Account page.

Documentation

Downloads and access control

The plugin creates protected download URLs under:

membership-account/download/<hash>

Those links check whether the current logged-in user still has access to the file before serving the download.

The uploaded zip files themselves still live inside your WordPress uploads directory at wp-content/uploads/pmpro-plugin-licensing/, so you should treat upload delivery as part of your hosting/security setup too. In particular:

  • protect wp-content/uploads/pmpro-plugin-licensing/ from direct access at the server level
  • make sure your uploads directory is not being exposed by a CDN or edge cache in a way that bypasses WordPress access checks
  • use the protected WordPress download URLs instead of raw upload URLs when sending customers download links

Example Nginx rule:

location ^~ /wp-content/uploads/pmpro-plugin-licensing/ {
    deny all;
    return 403;
}

Multiple plugin purchases

If you want customers to buy multiple plugin products, place those membership levels in a Level Group that allows multiple selections. Otherwise a new purchase can replace access to an earlier level instead of adding to it.

Invalid or expired licenses

An invalid or expired license does not remotely disable a customer’s plugin code. This project is primarily enforcing:

  • update eligibility
  • license/site activation status
  • access to protected downloads from the store

If you want a client plugin to gate features locally, that logic must live in the client plugin itself.

Consume the Code

This plugin is maintained on Github at https://github.com/breakfastco/pmpro-plugin-licensing.

Download the Plugin