GithubHelp home page GithubHelp logo

labs64 / pluginpass Goto Github PK

View Code? Open in Web Editor NEW
13.0 5.0 1.0 1.29 MB

PluginPass - WordPress PRO Plugin/Theme Licensing

Home Page: https://wordpress.org/plugins/pluginpass-pro-plugintheme-licensing/

PHP 89.11% CSS 1.49% JavaScript 3.45% Shell 5.66% Dockerfile 0.29%
wordpress wordpress-plugin wordpress-theme wordpress-development licensing license-management license licensing-as-a-service netlicensing license-key

pluginpass's Introduction

PluginPass - WordPress PRO Plugin/Theme Licensing (Public Alpha)

PluginPass - WordPress PRO Plugin/Theme Licensing


WordPress tested WordPress Plugin version WordPress Plugin Downloads WordPress Plugin Rating License


How to enable WordPress Plugin or Theme licensing

With Labs64 NetLicensing, it’s incredibly easy to enable license management for any software product, whether you’re selling a WordPress plugin, theme, desktop app, or even SaaS and IoT products.

PluginPass is a WordPress license manager that makes it easy to monetize your WordPress plugins and themes.

The Plugin is designed to be easy-to-use, which you easily define as a dependency to your plugin or theme, so this takes care of the plugin's & theme's features activation and validation.

Features

  • Enable the subscription model for the plugin/theme
  • Sell PRO versions of your plugin/theme
  • Offer trial/evaluation version on the PRO features (with the fallback to the lite version)
  • Enable up-selling by offering additional plugin/theme features
  • Use plugin or theme on the given domain only
  • License as many plugins/themes as you want
  • Need more features? - Let us know

Payment Gateways

Payment gateways supported in the plugin:

  • PayPal
  • Stripe
  • MyCommerce
  • FastSpring
  • Braintree - PLANNED
  • Authorize.net - PLANNED
  • 2Checkout - PLANNED
  • SOFORT Banking - PLANNED

PluginPass Overview

PluginPass is defined as a dependency to your WordPress plugin/theme and handles entire communication in a secure way with the Labs64 NetLicensing, and allows plugins/themes activation and validation at customer's WordPress instance, as well as new Licenses acquisition or Licenses renewal.

NetLicensing / WordPress Overview

Quickstart

Add this code-snippet to your plugin:

$quard = new \PluginPass\Inc\Common\PluginPass_Guard( $api_key, $product_number, $plugin_folder );
if ($quard->validate( $product_module_number )) {
    // do something
    $quard->open_shop();
}

Detailed integration instructions, NetLicensing products configuration tips and troubleshooting can be found on plugin's Wiki page.

Contributing

Anyone and everyone is welcome to contribute. Dozens of developers have helped make the PluginPass what it is today.

Check out also our Developers Guide here.

Related Links

pluginpass's People

Contributors

r-brown avatar v-rudkovskiy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

chrishultberg

pluginpass's Issues

Install & activate PluginPass as dependency

Allow defining PluginPass as a dependency in other 3pp WP plugins by:

  • using WP plugin repository (once approved)
  • using GitHub released version

Describe how to in the Wiki

User consent before validation

Show popup to ask an explicit confirmation from the user before executing NetLicensing validation request.

Consent popup form
Text:

By choosing "Agree" validation request will be sent to the Labs64 NetLicensing to verify valid use of the plugin or theme.
Personal data transferred with this request such as Unique Identifiers, Plugin and Theme Details, WordPress Instance Name, Domain Name, System Details of the data subject.

For more details on Labs64 NetLicensing data protection provisions visit Privacy Policy ( https://www.labs64.com/legal/privacy-policy/ ) and Privacy Center ( https://www.labs64.de/confluence/x/vQEKAQ )

Buttons: Agree / Cancel

Adjust User-Agent to reflect plugin name and version

Default NLIC PHP client user-agent string need to reflect current name and plugin version.

change
NetLicensing/PHP 2.5.0/7.2.8 (https://netlicensing.io)
to
NetLicensing/PHP/%PLUGIN_NAME% 2.5.0/7.2.8/%PLUGIN_VERSION% (https://netlicensing.io)
sample
NetLicensing/PHP/PluginPass 2.5.0/7.2.8/1.0.0 (https://netlicensing.io)

Plugin activation error

Following message appears on plugin activation:
The plugin generated 416 characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

Column "Expiration Date" used wrongly

Column "Expiration Date" should give the user valuable info on the plugin expiration date (Licensing Model: Subscription).
On the other side, TTL attribute should be used internally only, to control plugin validation requests to the NetLicensing.

HTTP 4xx/5xx handling

Following stack trace is shown in case of Unauthorized user request to NetLicensing service

Plugin could not be activated because it triggered a fatal error.

Fatal error: Uncaught NetLicensing\RestException: [0]: Unsupported response status code 401: Unauthorized thrown in /var/www/html/wp-content/plugins/pluginpass/vendor/labs64/netlicensingclient-php/service/NetLicensingService.php on line 169

Improve standard HTTP errors handling and show clear instructions / error messages

SVN pre-commit hook error

svn: E165001: Commit failed (details follow):
svn: E165001: Commit blocked by pre-commit hook (exit code 1) with output:

***********************************
PHP error in: pluginpass-pro-plugintheme-licensing/tags/0.9.0/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php:

Parse error: syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE) in pluginpass-pro-plugintheme-licensing/tags/0.9.0/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php on line 27
Errors parsing pluginpass-pro-plugintheme-licensing/tags/0.9.0/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
***********************************
*** FIN ***

New Host/Licensee validation fails with HTTP400 - Licensee does not exist

Attempt to validate new Licensee fails with the message:

Fatal error: Uncaught NetLicensing\RestException: [0]: Unsupported response status code 400: Licensee with the number 'localhost' does not exist. thrown in /var/www/html/wp-content/plugins/pluginpass/vendor/labs64/netlicensingclient-php/service/NetLicensingService.php on line 169

The site is experiencing technical difficulties. Please check your site admin email inbox for instructions.

which is related to the Token Creation:
request

POST https://go.netlicensing.io/core/v2/rest/token
tokenType=SHOP&licenseeNumber=localhost&successURL=Acquire+licenses

response

400
Content-Type: application/json
{"Signature":null,"infos":{"info":[{"value":"Licensee with the number 'localhost' does not exist.","id":"NotFoundException","type":"ERROR"}]},"items":null,"id":null,"ttl":null}

Validation response output variables

Data from the following validation response should be made available to the user:

{
  "MPP-DEMO": {
    "valid": "true",
    "expires": "2019-08-19T19:44:00.224Z",
    "licensingModel": "Subscription",
    "productModuleName": "Module licensed under Subscription licensing model",
    "productModuleNumber": "MPP-DEMO"
  }
}

e.g.

  • expires
  • licensingModel

PHP error while using PluginPass_Guard

ver0.9.1 - following error shown:

Notice: Only variables should be passed by reference in /var/www/html/wp-content/plugins/pluginpass/inc/common/class-pluginpass-guard.php on line 71

Optimize DB table structure

Rename columns:

  • number => product_number
  • name => plugin_name
  • validation => validation_result

Add a new column:

  • plugin_slug
    • use this column/attribute only to reference plugins
    • use plugin_name only to display plugin name in the backend

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.