Files
wc-licensed-product/CHANGELOG.md
magdev 78e43b9aea Implement version 0.0.3 features
- Add file attachment support for product versions (Media Library)
- Add version auto-detection from uploaded filenames
- Implement secure customer downloads with hash verification
- Add license key copy-to-clipboard functionality
- Redesign customer licenses page with card-based UI
- Fix product versions meta box visibility for non-licensed types
- Add DownloadController for secure file delivery
- Update CLAUDE.md roadmap and session history

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 19:46:50 +01:00

4.1 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

0.0.3 - 2026-01-21

Added

  • File attachment support for product versions (WordPress Media Library integration)
  • Version auto-detection from uploaded filenames (e.g., plugin-v1.2.3.zip)
  • Customer download page for purchased licenses with secure authenticated downloads
  • License key copy-to-clipboard functionality on account page and emails
  • New card-based UI for customer licenses page with download section
  • DownloadController for secure file delivery with hash-based URL verification

Changed

  • Product versions meta box now hidden for non-licensed product types (dynamic show/hide)
  • Redesigned customer licenses page with modern card layout
  • Frontend JavaScript and CSS enhancements for better UX

Technical Details

  • New class: DownloadController for secure file downloads
  • Database schema updated: attachment_id column added to versions table
  • ProductVersion model extended with getEffectiveDownloadUrl() and getDownloadFilename()
  • Secure download URLs use hash verification (license_id-version_id-hash format)

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