You've already forked wc-licensed-product
Add product version management: - ProductVersion model and VersionManager class - VersionAdminController with meta box on product edit page - AJAX-based version CRUD (add, delete, toggle status) - JavaScript for version management UI Add email notifications: - LicenseEmailController for order emails - License keys included in order completed emails - Support for both HTML and plain text emails Add REST API rate limiting: - 30 requests per minute per IP - Cloudflare and proxy-aware IP detection - HTTP 429 response with Retry-After header Other changes: - Bump version to 0.0.2 - Update CHANGELOG.md - Add version status styles to admin.css Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
74 lines
3.0 KiB
Markdown
74 lines
3.0 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
## [0.0.2] - 2026-01-21
|
|
|
|
### Added
|
|
|
|
- Product version management UI in admin (meta box on product edit page)
|
|
- AJAX-based version CRUD operations (add, delete, toggle active status)
|
|
- ProductVersion model and VersionManager for version data handling
|
|
- Email notifications with license keys on order completion
|
|
- License information included in WooCommerce order completed emails
|
|
- Rate limiting for REST API endpoints (30 requests/minute per IP)
|
|
- Cloudflare and proxy-aware IP detection for rate limiting
|
|
- JavaScript for version management interactions
|
|
|
|
### Changed
|
|
|
|
- Declared WooCommerce HPOS and cart/checkout blocks compatibility
|
|
- Plugin name changed from "WC Licensed Product" to "WooCommerce Licensed Product"
|
|
|
|
### Technical Details
|
|
|
|
- New classes: ProductVersion, VersionManager, VersionAdminController, LicenseEmailController
|
|
- Rate limiting uses WordPress transients for request counting
|
|
- HTTP 429 response with Retry-After header when rate limited
|
|
|
|
## [0.0.1] - 2026-01-21
|
|
|
|
### Added
|
|
|
|
- Initial plugin structure with WordPress Plugin API integration
|
|
- New WooCommerce product type "Licensed Product" for selling software licenses
|
|
- License key generation with format XXXX-XXXX-XXXX-XXXX on order completion
|
|
- Domain-based license validation (licenses bound to specific domains)
|
|
- REST API endpoints for license management:
|
|
- `POST /wp-json/wc-licensed-product/v1/validate` - Validate license for domain
|
|
- `POST /wp-json/wc-licensed-product/v1/status` - Check license status
|
|
- `POST /wp-json/wc-licensed-product/v1/activate` - Activate license on domain
|
|
- `POST /wp-json/wc-licensed-product/v1/deactivate` - Deactivate license
|
|
- Checkout domain field for licensed products
|
|
- Customer account page "Licenses" to view purchased licenses
|
|
- Admin interface for license management (WooCommerce > Licenses)
|
|
- License settings per product:
|
|
- Maximum activations per license
|
|
- License validity period (days or lifetime)
|
|
- Optional binding to major software version
|
|
- Current version tracking
|
|
- Custom database tables for licenses and product versions
|
|
- Twig template engine integration for views
|
|
- Full internationalization support (i18n)
|
|
- German (Switzerland, formal) translation (de_CH)
|
|
- WooCommerce HPOS compatibility
|
|
- Responsive frontend license table
|
|
|
|
### Technical
|
|
|
|
- PHP 8.3+ required
|
|
- WooCommerce 10.0+ required
|
|
- PSR-4 autoloading via Composer
|
|
- Twig 3.0 template engine
|
|
- WordPress REST API integration
|
|
- Custom WooCommerce product type extending WC_Product
|
|
|
|
[Unreleased]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.2...HEAD
|
|
[0.0.2]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.1...v0.0.2
|
|
[0.0.1]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/releases/tag/v0.0.1
|