From 4a90e6b18bb6f8f9a7b8e63e6f9ddba0e4fe88c1 Mon Sep 17 00:00:00 2001 From: magdev Date: Sat, 24 Jan 2026 16:08:41 +0100 Subject: [PATCH] Bump version to 0.3.9 Co-Authored-By: Claude Opus 4.5 --- CHANGELOG.md | 21 +++++++++++++++++++++ wc-licensed-product.php | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6840956..83f4791 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.9] - 2026-01-24 + +### Added + +- "Generate Licenses" button in order meta box for admin-created orders +- "Generate Missing Licenses" button when some products in an order are missing licenses +- AJAX handler `ajaxGenerateOrderLicenses()` for manual license generation from admin +- Warning message when order domain is not set before generating licenses + +### Fixed + +- **Critical:** Licenses are now generated for orders created manually in admin area +- Previously, licenses were only generated via checkout hooks, leaving admin-created orders without licenses + +### Technical Details + +- Added `wclp_generate_order_licenses` AJAX action to `OrderLicenseController` +- Updated `order-licenses.js` with generate button handler and page reload on success +- Added CSS styles for generate status messages +- Updated translations (365 strings) + ## [0.3.8] - 2026-01-24 ### Fixed diff --git a/wc-licensed-product.php b/wc-licensed-product.php index 1db3d91..193a517 100644 --- a/wc-licensed-product.php +++ b/wc-licensed-product.php @@ -3,7 +3,7 @@ * Plugin Name: WooCommerce Licensed Product * Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-licensed-product * Description: WooCommerce plugin to sell software products using license keys with domain-based validation. - * Version: 0.3.8 + * Version: 0.3.9 * Author: Marco Graetsch * Author URI: https://src.bundespruefstelle.ch/magdev * License: GPL-2.0-or-later @@ -28,7 +28,7 @@ if (!defined('ABSPATH')) { } // Plugin constants -define('WC_LICENSED_PRODUCT_VERSION', '0.3.8'); +define('WC_LICENSED_PRODUCT_VERSION', '0.3.9'); define('WC_LICENSED_PRODUCT_PLUGIN_FILE', __FILE__); define('WC_LICENSED_PRODUCT_PLUGIN_DIR', plugin_dir_path(__FILE__)); define('WC_LICENSED_PRODUCT_PLUGIN_URL', plugin_dir_url(__FILE__));