Compare commits
3
Commits
7286459ff2
..
v1.3.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74cc56005e | ||
|
|
136eed2bdd | ||
|
|
178f86f3e6 |
No files matched your search
@@ -37,3 +37,6 @@ wp-core
|
|||||||
|
|
||||||
# Releases (not tracked in git)
|
# Releases (not tracked in git)
|
||||||
/releases/
|
/releases/
|
||||||
|
|
||||||
|
# Claude Code local settings
|
||||||
|
.claude/settings.json
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# WooCommerce Tier and Package Prices - AI Context Document
|
# WooCommerce Tier and Package Prices - AI Context Document
|
||||||
|
|
||||||
**Last Updated:** 2026-01-25
|
**Last Updated:** 2026-01-27
|
||||||
**Current Version:** 1.3.0
|
**Current Version:** 1.3.1
|
||||||
**Author:** Marco Graetsch
|
**Author:** Marco Graetsch
|
||||||
**Project Status:** Production-ready WordPress plugin
|
**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.
|
**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
|
## Technical Stack
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
|
|||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"twig/twig": "^3.0",
|
"twig/twig": "^3.0",
|
||||||
"magdev/wc-licensed-product-client": "^0.1",
|
"magdev/wc-licensed-product-client": "dev-main",
|
||||||
"symfony/http-client": "^7.0",
|
"symfony/http-client": "^7.0",
|
||||||
"psr/log": "^3.0",
|
"psr/log": "^3.0",
|
||||||
"psr/cache": "^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
|
- 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
|
- 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!
|
Always refer to this document when starting work on this project. Good luck!
|
||||||
@@ -20,10 +20,11 @@ A powerful WooCommerce plugin that adds tier pricing and package pricing functio
|
|||||||
|
|
||||||
### Admin Features
|
### Admin Features
|
||||||
- Easy-to-use product meta boxes for adding tiers and packages
|
- 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)
|
- Configure display position (before/after add to cart, after price)
|
||||||
- Enable/disable tier or package pricing independently
|
- Enable/disable tier or package pricing independently
|
||||||
- Sortable pricing rules
|
- Sortable pricing rules
|
||||||
|
- License management with secure HMAC signature verification
|
||||||
|
|
||||||
### Frontend Features
|
### Frontend Features
|
||||||
- Beautiful pricing tables on product pages
|
- 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/
|
||||||
├── 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/
|
├── includes/
|
||||||
│ ├── class-wc-tpp-admin.php # Admin settings integration
|
│ ├── class-wc-tpp-admin.php # Admin settings integration
|
||||||
│ ├── class-wc-tpp-settings.php # WooCommerce settings page
|
│ ├── 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)
|
- WordPress 6.0 or higher (tested up to 6.9.x)
|
||||||
- WooCommerce 8.0 or higher (tested up to 10.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
|
### Compatibility
|
||||||
|
|
||||||
@@ -183,9 +184,32 @@ This plugin is licensed under the GPL v2 or later.
|
|||||||
|
|
||||||
## Changelog
|
## 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
|
### 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__: Full support for WooCommerce variable products with variation-level pricing
|
||||||
- __New__: Each variation can have independent tier and package pricing configuration
|
- __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
|
- __Fixed__: Quantity restrictions now work correctly per-variation
|
||||||
- 100% backward compatible - no breaking changes
|
- 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
|
### Recent Major Updates
|
||||||
|
|
||||||
#### Version 1.1.7 - Enhanced Tier Pricing
|
#### Version 1.1.7 - Enhanced Tier Pricing
|
||||||
|
|||||||
Reference in new issue
Block a user