feat: Add license management and tabbed settings (v0.3.0)

- Implement license management using magdev/wc-licensed-product-client
- Reorganize settings page into License, Default Settings, Integrations tabs
- Add license validation and activation via AJAX
- Frontend features require valid license (admin works always)
- Update translations with German (de_CH) for license strings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-29 12:03:05 +01:00
parent d62f01cf41
commit f3cd19efe0
15 changed files with 6539 additions and 99 deletions

View File

@@ -24,9 +24,7 @@ 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.2.1 (Bugfix)
### Version 0.3.0 (Minor)
(No pending features - all roadmap items completed)
## Technical Stack
@@ -426,3 +424,43 @@ wp-fedistream/
- All releases pushed to origin (v0.1.1 and v0.2.0 tags)
- Markdown linting fixes applied to USERGUIDE.md
### 2026-01-29 - License Management v0.3.0
**Summary:** Implemented license management integration and reorganized settings page into tabs.
**Features:**
- License management using `magdev/wc-licensed-product-client` package
- Tabbed settings page: License, Default Settings, Integrations
- License validation and activation via AJAX
- License status banner with expiration display
- Frontend license checks (unlicensed sites show message instead of content)
- Admin/backend works regardless of license status
**License Behavior:**
- Backend (admin): Full access always
- Frontend (player, shortcodes, ActivityPub): Requires valid license
**Files Created:**
- `includes/License/Manager.php` - License management wrapper class
**Files Modified:**
- `composer.json` - Added VCS repository and `magdev/wc-licensed-product-client` dependency
- `includes/Plugin.php` - Tabbed settings page, license manager initialization, conditional frontend loading
- `includes/Installer.php` - Added default license options
- `includes/Frontend/Shortcodes.php` - Added unlicensed mode support
- `includes/Frontend/Ajax.php` - Added license checks to public AJAX endpoints
- `assets/js/admin.js` - License validation AJAX handlers
- `assets/css/admin.css` - Tab and license status styling
- `wp-fedistream.php` - Version bump to 0.3.0
- `CHANGELOG.md` - Added v0.3.0 entry
**Notes:**
- Package name is `magdev/wc-licensed-product-client` (not `wc-license-product-client`)
- Uses Symfony HTTP Client via the license client package
- License validation cached for 24 hours using WordPress transients