You've already forked wc-licensed-product
Implement versions 0.0.4-0.0.7 features
v0.0.4: - Add WooCommerce settings tab for default license settings - Per-product settings override global defaults v0.0.5: - Add bulk license operations (activate, deactivate, revoke, extend, delete) - Add license renewal/extension and lifetime functionality - Add quick action buttons per license row v0.0.6: - Add license dashboard with statistics and analytics - Add license transfer functionality (admin) - Add CSV export for licenses - Add OpenAPI 3.1 specification - Remove /deactivate API endpoint v0.0.7: - Move license dashboard to WooCommerce Reports section - Add license search and filtering in admin - Add customer-facing license transfer with AJAX modal - Add email notifications for license expiration warnings - Add bulk import licenses from CSV - Update README with comprehensive documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
111
CHANGELOG.md
111
CHANGELOG.md
@@ -7,6 +7,110 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.0.7] - 2026-01-21
|
||||
|
||||
### Added
|
||||
|
||||
- License Dashboard moved to WooCommerce Reports section (Reports > Licenses)
|
||||
- License search and filtering in admin (by license key, domain, status, product)
|
||||
- Customer-facing license transfer request with AJAX-based modal
|
||||
- Email notifications for license expiration warnings (7 days and 1 day before)
|
||||
- Bulk import licenses from CSV functionality
|
||||
- Import page with detailed format instructions
|
||||
- Scheduled cron job for daily expiration checks
|
||||
|
||||
### Changed
|
||||
|
||||
- Dashboard now accessible via WooCommerce > Reports > Licenses tab
|
||||
- License list page includes search box and filter dropdowns
|
||||
- Pagination preserves filter state
|
||||
- Import CSV button added to licenses page header
|
||||
|
||||
### Technical Details
|
||||
|
||||
- AccountController extended with customer transfer AJAX handler and domain normalization
|
||||
- LicenseEmailController extended with expiration warning scheduling and email templates
|
||||
- LicenseManager extended with `getLicensesExpiringSoon()`, `markExpirationNotified()`, `wasExpirationNotified()`, `importLicense()` methods
|
||||
- AdminController extended with CSV import handling and import page rendering
|
||||
- Installer clears cron events on plugin deactivation
|
||||
- Frontend JavaScript extended for transfer modal handling
|
||||
- Frontend CSS extended with modal and transfer button styles
|
||||
|
||||
## [0.0.6] - 2026-01-21
|
||||
|
||||
### Added
|
||||
|
||||
- License usage statistics/analytics dashboard (WooCommerce > License Dashboard)
|
||||
- License transfer functionality to change domain from admin
|
||||
- Export licenses to CSV functionality
|
||||
- OpenAPI 3.1 specification for REST API documentation (`openapi.json`)
|
||||
- Monthly license creation chart on dashboard
|
||||
- Top products and top domains statistics
|
||||
- Expiring soon alerts on dashboard
|
||||
|
||||
### Removed
|
||||
|
||||
- API endpoint `/deactivate` removed (license deactivation is now admin-only)
|
||||
|
||||
### Changed
|
||||
|
||||
- Licenses admin page header now includes Export CSV button
|
||||
- Actions column widened to accommodate Transfer link
|
||||
- Dashboard link added to licenses page
|
||||
|
||||
### Technical Details
|
||||
|
||||
- New admin page: License Dashboard with statistics overview
|
||||
- LicenseManager extended with `transferLicense()`, `getStatistics()`, `exportLicensesForCsv()` methods
|
||||
- AdminController extended with dashboard rendering, CSV export, and transfer handling
|
||||
- Transfer modal with form for domain change
|
||||
- REST API now only has three endpoints: `/validate`, `/status`, `/activate`
|
||||
- OpenAPI 3.1 specification documents all API endpoints with examples
|
||||
|
||||
## [0.0.5] - 2026-01-21
|
||||
|
||||
### Added
|
||||
|
||||
- Bulk license operations in admin (activate, deactivate, revoke, extend, delete)
|
||||
- License renewal/extension functionality (extend by 30/90/365 days)
|
||||
- Set license to lifetime (remove expiration)
|
||||
- Quick action buttons per license row (+30d, ∞, Revoke, Delete)
|
||||
- Checkbox selection for bulk operations with select-all functionality
|
||||
- Improved admin notices for bulk operation results
|
||||
|
||||
### Changed
|
||||
|
||||
- Licenses admin page redesigned with WordPress list table styling
|
||||
- License actions use row-actions pattern for cleaner UI
|
||||
- Bulk action dropdowns at top and bottom of table (synchronized)
|
||||
|
||||
### Technical Details
|
||||
|
||||
- LicenseManager extended with `extendLicense()`, `setLicenseLifetime()`, `bulkUpdateStatus()`, `bulkDelete()`, `bulkExtend()` methods
|
||||
- AdminController extended with bulk action handling and extend/lifetime actions
|
||||
- Twig template functions for generating action URLs with nonces
|
||||
- JavaScript for checkbox sync and bulk action handling
|
||||
|
||||
## [0.0.4] - 2026-01-21
|
||||
|
||||
### Added
|
||||
|
||||
- WooCommerce settings tab "Licensed Products" for default license settings
|
||||
- Default settings for Max Activations, License Validity, and Bind to Major Version
|
||||
- Per-product settings now override global defaults (empty = use default)
|
||||
- Settings link in product edit page pointing to WooCommerce settings
|
||||
|
||||
### Changed
|
||||
|
||||
- Product license settings now show placeholder with default values
|
||||
- LicensedProduct class now falls back to global defaults when product settings are empty
|
||||
|
||||
### Technical Details
|
||||
|
||||
- New class: SettingsController for WooCommerce settings integration
|
||||
- LicensedProduct model extended with `has_custom_*` methods for checking overrides
|
||||
- Settings stored using WooCommerce options API
|
||||
|
||||
## [0.0.3] - 2026-01-21
|
||||
|
||||
### Added
|
||||
@@ -67,7 +171,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- `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)
|
||||
@@ -92,7 +195,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- WordPress REST API integration
|
||||
- Custom WooCommerce product type extending WC_Product
|
||||
|
||||
[Unreleased]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.3...HEAD
|
||||
[Unreleased]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.7...HEAD
|
||||
[0.0.7]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.6...v0.0.7
|
||||
[0.0.6]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.5...v0.0.6
|
||||
[0.0.5]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.4...v0.0.5
|
||||
[0.0.4]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.3...v0.0.4
|
||||
[0.0.3]: https://src.bundespruefstelle.ch/magdev/wc-licensed-product/compare/v0.0.2...v0.0.3
|
||||
[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
|
||||
|
||||
Reference in New Issue
Block a user