Compare commits

...
3 Commits
Author SHA1 Message Date
magdevandClaude Opus 4.5 74cc56005e Add .claude/settings.json to gitignore
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 19:33:15 +01:00
magdevandClaude Opus 4.5 136eed2bdd Document v1.3.1 session learnings in CLAUDE.md
- Update version to 1.3.1 and date to 2026-01-27
- Replace completed v1.3.1 roadmap with v1.3.2 placeholder
- Update license client dependency to dev-main
- Add v1.3.1 session history documenting SecureLicenseClient switch

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 19:31:06 +01:00
magdevandClaude Opus 4.5 178f86f3e6 Update README for v1.3.1 release
- Added license management feature to admin features list
- Updated PHP requirement from 7.4 to 8.3
- Updated file structure version comment to v1.3.1
- Added v1.3.0 and v1.3.1 changelog entries

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 19:27:01 +01:00
3 changed files with 76 additions and 27 deletions

No files matched your search

+3
View File
@@ -37,3 +37,6 @@ wp-core
# Releases (not tracked in git)
/releases/
# Claude Code local settings
.claude/settings.json
+45 -5
View File
@@ -1,7 +1,7 @@
# WooCommerce Tier and Package Prices - AI Context Document
**Last Updated:** 2026-01-25
**Current Version:** 1.3.0
**Last Updated:** 2026-01-27
**Current Version:** 1.3.1
**Author:** Marco Graetsch
**Project Status:** Production-ready WordPress plugin
@@ -20,9 +20,9 @@ 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. Always keep the `Known Bugs` section and create a section with the next bugfix and minor version after a release.
### Version 1.3.1
### Version 1.3.2
- TBD
- No planned changes yet
## Technical Stack
@@ -40,7 +40,7 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
```json
{
"twig/twig": "^3.0",
"magdev/wc-licensed-product-client": "^0.1",
"magdev/wc-licensed-product-client": "dev-main",
"symfony/http-client": "^7.0",
"psr/log": "^3.0",
"psr/cache": "^3.0",
@@ -1176,6 +1176,46 @@ The plugin architecture is solid and well-tested. Most bugs arise from:
- Package version was `^0.1` not `^1.0` - always check available versions before setting constraint
- Release package size increased from ~430KB to ~737KB due to new Composer dependencies
### v1.3.1 Release Session (2026-01-27)
**Accomplished:**
1. Reviewed server-implementation.md from license client library
2. Upgraded from `LicenseClient` to `SecureLicenseClient`:
- Added "Server Secret" configuration field in License settings tab
- Updated `get_license_client()` to use `SecureLicenseClient` with HMAC-SHA256 signature verification
- Updated JavaScript to pass `server_secret` in AJAX requests
3. Added comprehensive exception handling:
- `RateLimitExceededException` - Shows retry time to user
- `SignatureException` - Reports signature verification failures
- `InvalidArgumentException` - SSRF protection for private IP blocking
4. Updated Composer dependencies:
- Changed `magdev/wc-licensed-product-client` from `^0.1` to `dev-main`
- Library includes new security features (SSRF protection, response signatures)
5. Updated translations:
- Added 7 new translation strings for v1.3.1
- All 7 language files updated and compiled
6. Created release package:
- Package size: 745KB
- 642 files included
- SHA256 checksum generated
7. Updated README.md:
- Documented license management feature
- Updated PHP requirement to 8.3
- Added v1.3.0 and v1.3.1 changelog entries
**Key Learnings:**
- `SecureLicenseClient` requires `serverSecret` parameter for HMAC verification
- The library's exception classes are in `Magdev\WcLicensedProductClient\Exception\` and `Magdev\WcLicensedProductClient\Security\` namespaces
- `RateLimitExceededException` has a `retryAfter` property (int seconds)
- Always check library documentation in `docs/server-implementation.md` for implementation requirements
---
Always refer to this document when starting work on this project. Good luck!
+28 -22
View File
@@ -20,10 +20,11 @@ A powerful WooCommerce plugin that adds tier pricing and package pricing functio
### Admin Features
- Easy-to-use product meta boxes for adding tiers and packages
- Global settings page under WooCommerce menu
- Global settings page under WooCommerce menu with sub-tabs
- Configure display position (before/after add to cart, after price)
- Enable/disable tier or package pricing independently
- Sortable pricing rules
- License management with secure HMAC signature verification
### Frontend Features
- Beautiful pricing tables on product pages
@@ -110,7 +111,7 @@ When editing a product, scroll to the **Product data** panel:
```
wc-tier-and-package-prices/
├── wc-tier-and-package-prices.php # Main plugin file (v1.1.20)
├── wc-tier-and-package-prices.php # Main plugin file (v1.3.1)
├── includes/
│ ├── class-wc-tpp-admin.php # Admin settings integration
│ ├── class-wc-tpp-settings.php # WooCommerce settings page
@@ -149,7 +150,7 @@ wc-tier-and-package-prices/
- WordPress 6.0 or higher (tested up to 6.9.x)
- WooCommerce 8.0 or higher (tested up to 10.x)
- PHP 7.4 or higher
- PHP 8.3 or higher (required since v1.3.0)
### Compatibility
@@ -183,9 +184,32 @@ This plugin is licensed under the GPL v2 or later.
## Changelog
### Version 1.3.1 - 2026-01-27
__Current Release__ - Secure License Client
- __Changed__: Switched to `SecureLicenseClient` with HMAC-SHA256 response signature verification
- __New__: Server Secret configuration field for secure communication with license server
- __New__: Rate limit exception handling with retry time display
- __New__: Signature verification and URL validation error handling
- __Security__: Response signatures verified using HMAC-SHA256 with license-specific derived keys
See [CHANGELOG.md](CHANGELOG.md) for complete details.
### Version 1.3.0 - 2026-01-25
__Breaking Changes__ - PHP 8.3+ Required
- __Breaking__: Minimum PHP version increased from 7.4 to 8.3
- __New__: License management via `magdev/wc-licensed-product-client` library
- __New__: Settings page split into "General" and "License" sub-tabs
- __New__: AJAX-based license validation and activation with visual feedback
- __New__: License status caching with daily auto-refresh
- __New__: PHP version check with admin notice for incompatible servers
### Version 1.2.0 - 2025-12-29
__Current Release__ - Variable Product Support
Variable Product Support
- __New__: Full support for WooCommerce variable products with variation-level pricing
- __New__: Each variation can have independent tier and package pricing configuration
@@ -194,24 +218,6 @@ __Current Release__ - Variable Product Support
- __Fixed__: Quantity restrictions now work correctly per-variation
- 100% backward compatible - no breaking changes
See [CHANGELOG.md](CHANGELOG.md) for complete details.
### Version 1.1.22 - 2025-12-23
- Increased width of label input fields in admin interface
#### Fixed
- **CRITICAL:** WooCommerce Blocks fatal error in mini-cart and cart blocks
- Fixed `woocommerce_store_api_product_quantity_editable` filter signature mismatch
- Filter now correctly accepts `WC_Product` object instead of cart item array
- Resolves "Cannot use object of type WC_Product_Simple as array" fatal error
#### Technical Details
- Updated `block_quantity_editable()` method signature to accept product object
- Changed parameter from `$cart_item` array to `WC_Product $product`
- Uses `$product->get_id()` instead of array access for product ID
- Full compatibility with WooCommerce Store API and block-based cart/checkout
### Recent Major Updates
#### Version 1.1.7 - Enhanced Tier Pricing