Creating Products

Register a new plugin or theme in LicenceForge by navigating to LicenceForge → Products → Add Product in your WordPress admin. The product form is divided into sections covering identity, versioning, and distribution.

Add New Product form showing Product Details section
The product creation form in the WordPress admin panel.

Product details

The Product Details section captures the core identity of your plugin or theme.

Field Type Required Default Description
name text Yes The display name of the product (e.g. "AcmeForms Pro").
slug text Yes Unique identifier used in API calls. Pattern: [a-z0-9-]+
description textarea No Internal description of the product. Not displayed to end users.
homepage_url url No Public-facing product page URL. Returned in the update API response.
is_active checkbox No true Controls whether the product is available for licensing. Unchecking hides it from the API without affecting existing licences.

Slug requirements

The slug is the permanent identifier for your product across the entire LicenceForge system. It appears in:

  • REST API endpoints: /wplf/v1/license/validate?product=your-slug
  • Client library configuration: new WPLF_Client('your-slug', ...)
  • Database queries and webhook payloads

Warning

Choose the slug carefully. Changing it later requires updating every client installation, Stripe webhook mapping, and WooCommerce integration. The slug must contain only lowercase letters, numbers, and hyphens.

Version and downloads

The Version & Downloads section controls what version clients see and where they download updates from.

Field Type Default Description
latest_version text 1.0.0 Current version string. Compared against client-side version for update detection.
zip_path text Relative path from the /assets/ folder (e.g. plugins/my-plugin.zip).
external_url url Alternative download URL for S3 or CDN-hosted packages. Takes precedence over zip_path.

Tip

Use external_url for production deployments. Hosting packages on an S3-compatible service with pre-signed URLs provides better performance and security than local file storage.

WordPress compatibility

These fields populate the WordPress update API response, allowing WordPress to show compatibility information in the admin dashboard.

Field Type Default Description
requires_wp text 5.8 Minimum WordPress version required.
tested_wp text 6.4 Highest WordPress version tested against.
requires_php text 7.4 Minimum PHP version required.

Changelog

The changelog field accepts HTML content. When you update a version through the admin UI or the update_version() method, new entries are automatically prepended with a version header:

<h4>1.2.0 - 2025-03-15</h4>
Added: New analytics dashboard
Fixed: Licence validation timeout on slow connections

<h4>1.1.0 - 2025-01-20</h4>
Added: WooCommerce integration
Improved: Key generation performance

Next steps

After creating a product, configure its pricing and distribution:

  1. Define price tiers with billing intervals and activation limits
  2. Upload a version package and recalculate the integrity hash
  3. Generate your first licence or connect a payment provider for automatic creation