You've already forked wc-licensed-product
Add licensed variable product support for duration-based licenses (v0.5.3)
Customers can now purchase licenses with different durations (monthly, yearly, lifetime) through WooCommerce product variations. Each variation can have its own license validity settings. New features: - LicensedVariableProduct class for variable licensed products - LicensedProductVariation class for individual variations - Per-variation license duration and max activations settings - Duration labels in checkout (Monthly, Quarterly, Yearly, etc.) - Full support for WooCommerce Blocks checkout with variations - Updated translations for German (de_CH) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
45
CLAUDE.md
45
CLAUDE.md
@@ -32,10 +32,6 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
|
||||
|
||||
**Note for AI Assistants:** Clean this section after the specific features are done or new releases are made. Effective changes are tracked in `CHANGELOG.md`. Do not add completed versions here - document them in the Session History section at the end of this file.
|
||||
|
||||
### Version 0.5.2
|
||||
|
||||
*No planned bugfixes yet.*
|
||||
|
||||
### Version 0.6.0
|
||||
|
||||
*No planned features yet.*
|
||||
@@ -1341,3 +1337,44 @@ Security enhancement release adding per-license customer secrets for API respons
|
||||
- Created release package: `releases/wc-licensed-product-0.5.2.zip` (845 KB)
|
||||
- SHA256: `2d61a78ac5ba0f1d115a6401e6dded5b872b18f5530027c371604cbd18e9e27c`
|
||||
- Tagged as `v0.5.2` and pushed to `main` branch
|
||||
|
||||
### 2026-01-26 - Version 0.5.3 - Variable Licensed Products
|
||||
|
||||
**Overview:**
|
||||
|
||||
Major feature release adding support for WooCommerce variable products. Customers can now purchase licenses with different durations (monthly, yearly, lifetime) as product variations.
|
||||
|
||||
**New files:**
|
||||
|
||||
- `src/Product/LicensedVariableProduct.php` - Variable product class extending `WC_Product_Variable`
|
||||
- `src/Product/LicensedProductVariation.php` - Variation class with license settings
|
||||
|
||||
**Implemented:**
|
||||
|
||||
- New `licensed-variable` product type for selling licenses with different durations
|
||||
- `LicensedVariableProduct` class extending WooCommerce variable products
|
||||
- `LicensedProductVariation` class for individual variation license settings
|
||||
- Variation-specific license duration fields in product edit page (days, max activations)
|
||||
- Duration labels (Monthly, Quarterly, Yearly, Lifetime) displayed in checkout
|
||||
- Variation ID tracking in order domain meta for proper license generation
|
||||
- WooCommerce Blocks checkout updated to handle variations with duration labels
|
||||
|
||||
**Modified files:**
|
||||
|
||||
- `src/Product/LicensedProductType.php` - Added licensed-variable type registration, variation hooks
|
||||
- `src/License/LicenseManager.php` - Added `isLicensedProduct()` helper, variation support in `generateLicense()`
|
||||
- `src/Plugin.php` - Updated license generation to handle variations
|
||||
- `src/Checkout/CheckoutController.php` - Variation support in domain field rendering
|
||||
- `src/Checkout/CheckoutBlocksIntegration.php` - Variation data in blocks checkout
|
||||
- `src/Checkout/StoreApiExtension.php` - Variation ID in Store API schema
|
||||
- `assets/js/checkout-blocks.js` - Variation handling in React components and DOM fallback
|
||||
|
||||
**Technical notes:**
|
||||
|
||||
- Variable product type shows in WooCommerce product type selector as "Licensed Variable Product"
|
||||
- Each variation can override parent's license duration and max activations
|
||||
- Variations are always virtual (licensed products don't ship)
|
||||
- `LicensedProductVariation::get_license_duration_label()` returns human-readable duration
|
||||
- Order meta `_licensed_product_domains` now includes optional `variation_id` field
|
||||
- License generation uses variation settings when `variation_id` is present in order item
|
||||
- Backward compatible: existing simple licensed products continue to work unchanged
|
||||
|
||||
Reference in New Issue
Block a user