=== Licenzo – License and Subscription Management Solution ===
Contributors: solvix
Tags: license, subscription, woocommerce, license key, software licensing
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 8.0
Stable tag: 1.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Licenzo is a powerful license and subscription management plugin for WordPress. Automate license key generation, validation, and recurring payments.

== Description ==

[Website](https://http://getlicenzo.com/) | [SDK](https://github.com/licenzo/php-sdk)

Licenzo is a powerful license and subscription management plugin for WordPress. For digital product sellers (such as plugin or theme developers) license management is a hassle. Licenzo will automate license key generation, validation, and recurring payments.

With Licenzo you can automatically assign license keys on purchase, set expiration dates, and send renewal reminders—all within your WordPress dashboard. Simple, WooCommerce-based, clean UI, you couldn't expect more!

Whether you're a solo developer or a small business owner, Licenzo makes selling and managing software licenses easy and secure.

= Features =

* **Self-hosted solution:** Keep all license data and processes on your own WordPress site (no third-party licensing servers needed).
* **Automated licensing:** Generate unique license keys automatically when customers purchase your product. Licenses can have activation limits and expiration dates that Licenzo tracks and enforces.
* **WooCommerce integration:** Easily tie licenses to your WooCommerce products. When a customer buys a licensed product, Licenzo creates and assigns the license key automatically. Works with simple and variable products.
* **Subscription support:** Built-in support for recurring payments (using WooCommerce Subscriptions). Licenzo will automatically renew or expire licenses according to subscription payments. You can also manually renew or extend licenses if needed.
* **Expiration management:** Licenses can be set to expire after a defined period. Expired licenses are automatically revoked, ensuring expired customers lose access. Licenzo can also send reminders before expiration to prompt renewals.
* **Email notifications:** Send automated email alerts to customers and admins for important events (license activation, upcoming expiration, renewal confirmations, etc.). All notification templates are customizable.
* **Custom license keys:** Define your own key format, length, or prefix to match your branding or security needs. Licenzo's key generator can create pretty or complex keys as desired.
* **Dashboard & analytics:** View a clear overview of your business inside WordPress. The Licenzo dashboard shows total customers, active licenses, activations, and revenue from subscriptions. Charts and metrics help you spot trends at a glance.
* **Customer portal:** Use the built-in shortcode (`[licenzo_customer_portal]`) to give customers a frontend dashboard. Customers can log in to view their licenses, activation counts, and download links, all in one place.
* **Developer-friendly:** For advanced users, Licenzo includes REST API endpoints and action/filter hooks. You can integrate license checks into your code or connect with other tools programmatically (optional).
* **Easy product setup:** Quickly add licensing to existing products. Licenzo adds a Licenzo tab to your WooCommerce products so you can enable licenses and set activation limits with a click while adding a new product.
* **Upcoming features and integrations:** We're planning even more features! Future updates will include support for Easy Digital Downloads, FluentCart, FluentCRM, Mailchimp, marketplace imports (e.g. ThemeForest/CodeCanyon), split payment, coupon code, export/import license keys, and a lot more.

== Installation ==

1. **Download and install Licenzo:** In your WordPress admin, go to **Plugins > Add New**, search for "Licenzo – License and Subscription Management Plugin," then click **Install** and **Activate**. Alternatively, download the plugin zip from WordPress.org and upload it via **Plugins > Add New > Upload Plugin**.
2. **System requirements:** Ensure you're running WordPress 5.0 or higher and PHP 8.0 or higher. Licenzo requires WooCommerce for full functionality, so install and activate WooCommerce if you haven't already.
3. **Initial setup:** After activation, you'll find all relevant components under **Licenzo** section in the WordPress menu (or under **WooCommerce > Products > Add a new product > Licenzo**). You can also go directly to **Licenses** or **Settings** from Licenzo for more convenience.
4. **Configure Licenzo:** Go to **Licenzo > Settings** to set up your license key format, email notifications, and subscription rules. You can customize how keys are generated and what emails are sent when licenses are created, activated, or expired.
5. **Ready to go:** Licenzo is now installed and ready to use. Next, see the **Usage** section below to learn how to add licenses to products and manage them.

== Usage ==

* **Assign licenses to products:** Edit any WooCommerce product (or create a new one). Locate the **Licenzo** tab or section in the product editor. Check **Sync to Licenzo** (or similar) to add licensing options to this product. Here you can set status (Active/Inactive/Draft), License Cycle (Monthly, Yearly, etc.), and how many activations each license allows. **Publish** the product. Now, whenever this product is purchased, Licenzo will generate a license key for the customer automatically.

* **Automatic license generation:** When a customer completes a purchase of a licensed product, Licenzo generates the license key, assigns it to the customer, and emails the key to them. The key's status (active, inactive, expired) is recorded in your Licenzo dashboard.

* **Manage licenses:** Go to the **Licenzo → Licenses** from your WordPress dashboard. Here you'll see a list of all license keys, their status, expiration dates, and associated orders. You can search for licenses, view details, and perform actions like activating, deactivating, or deleting keys. You can also manually create new licenses if needed (for example, to issue a free license or move a license to another customer).

* **Subscription renewals:** If you sell subscriptions (via WooCommerce Subscriptions), Licenzo handles renewals automatically. When a subscription is renewed, Licenzo extends the customer's license expiration date. If a subscription payment fails or is canceled, Licenzo will revoke or expire the related license. You can view and manage these events in the Licenzo dashboard.

* **Customer management:** Licenzo automatically links customers to licenses. Each license is assigned to the user who bought it (you can sync or manually adjust these connections). In the **Customers** view, you can see each customer's profile, total purchases, and active licenses. This makes it easy to track customer lifetime value and support requests.

* **Frontend portal:** For a user-friendly experience, place the shortcode `[licenzo_customer_portal]` on any page. This creates a front-end portal where logged-in customers can view their own licenses, check activation counts, and download associated files. It's a simple way to give customers self-service access without coding.

* **Dashboard insights:** Licenzo adds analytics to your WordPress admin area. Check the Licenzo **Dashboard** to see charts and stats like total revenue, MRR, subscriptions, licenses, sites, top products and more. These insights help you make informed business decisions at a glance.

* **Extending Licenzo:** Developers can use Licenzo's REST API and hooks to add custom license validation in their own code or integrate with other systems. (For example, your software could call Licenzo's API to check if a license key is valid before enabling features.) This is optional – Licenzo works out of the box without any coding, but provides advanced tools if you need them.

== Frequently Asked Questions ==

= Who is Licenzo for? =

Licenzo is designed for creators of digital products – plugin authors, theme developers, SaaS providers, or anyone selling software online. It's perfect for small businesses and solo developers who want an easy way to automate license keys and recurring billing without relying on a third-party service. If you're tired of managing licenses and renewals manually in spreadsheets, Licenzo is for you.

= Do I need coding or technical skills to use Licenzo? =

Not at all. Licenzo has a clean, user-friendly interface in WordPress. If you can use WordPress and WooCommerce, you can use Licenzo. All features (key generation, email notifications, dashboard) are managed through simple settings and menus. Developers will appreciate additional options like APIs and hooks, but those are optional.

= Is Licenzo free? =

Yes, the core version of Licenzo is 100% free. You can start issuing licenses and subscriptions at no cost. We plan to release premium add-ons and integrations in the future, but you can do most license management tasks right away without spending anything.

= Do I need WooCommerce? =

For now, yes. We're working on providing a standalone environment where you don't need any third-party commerce providers. Licenzo is built to work seamlessly with WooCommerce, so having WooCommerce activated gives you the easiest setup (you can attach licenses to products and use payment gateways). However, using WooCommerce also allows you to use subscription plugins and payment methods directly.

= What happens when a license expires? =

Licenzo automatically handles expired licenses for you. When a license reaches its expiration date (or a subscription ends), Licenzo will revoke or deactivate that license key. You can also send warning emails before expiration to remind customers to renew. This automated process means you won't have to track expirations manually.

= Can I customize the license key format? =

Absolutely. In the Licenzo settings, you can define the format of your license keys (for example, you might want keys like `PROD-XXXX-XXXX`). This way, your license keys can match your brand or technical requirements.

= How are customer notifications handled? =

Licenzo sends configurable email notifications at key moments: when a license is created, when it is activated, and before or after it expires. You can edit the email templates and decide which notifications to send, ensuring your customers are always up-to-date about their licenses.

= Will Licenzo slow down my site? =

No. Licenzo is built to be lightweight and efficient. It only loads its features when needed, and all data is stored in the WordPress database. In normal use, it adds minimal overhead, so your site performance won't be affected.

== Screenshots ==

1. Licenzo Dashboard – Overview of revenue, active keys, and business metrics at a glance.
2. Products – Manage your licensed products with WooCommerce integration.
3. Customers – View customer profiles, purchases, and active licenses.
4. Subscriptions – Track and manage recurring subscriptions.
5. Licenses – View all license keys, their status, expiration, and activation details.
6. Settings – Configure general plugin settings.
7. Subscription Settings – Set up subscription rules and renewal behavior.
8. Email Settings – Customize email notification templates.
9. Notification Settings – Control which notifications are sent and when.
10. License Key Generator – Define custom key formats, lengths, and prefixes.

== Changelog ==

= 1.1.1 =
* WordPress coding standards compliance hotfix.

= 1.1.0 =
* Added: Easy Digital Downloads (EDD) integration with full subscription and license lifecycle parity with the WooCommerce module — purchase, renewal, cancellation, and customer-portal flows.
* Added: Native Stripe Subscription support for automated recurring billing with proper customer consent and webhook handling.
* Added: Stripe webhook endpoint with configurable secret for secure subscription lifecycle event handling.
* Added: EDD renewal orders — renewal transactions are recorded in both Licenzo and EDD for accurate revenue tracking and customer management.
* Added: Customer portal downloads now serve EDD native download files when no Licenzo release exists, ensuring a seamless experience for EDD customers.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.1.1 =
WordPress coding standards compliance hotfix. No functional changes — escaping, sanitization, and dev artifact cleanup.

= 1.1.0 =
Adds Easy Digital Downloads support and fixes a renewal-blocking fatal error from 1.0.0. Installs that previously selected FluentCart as commerce provider will fall back to WooCommerce; FluentCart support returns in a future release.

= 1.0.0 =
Initial release of Licenzo – License and Subscription Management Plugin.

== Support ==

For the latest updates, you can visit the [Licenzo website](https://getlicenzo.com). If you have questions or run into any issues, you can:

* **WordPress Support Forum:** Search or post on the Licenzo support forum at WordPress.org for help from the community and developers.
* **Contact the Team:** Use the contact form on our website (https://solvixstudio.com/support/) to reach out directly for support or business inquiries.

We're committed to helping you succeed with Licenzo. Don't hesitate to get in touch if you need assistance or have feedback!
