You've already forked wc-tier-and-package-prices
Release version 1.1.19 - Enhanced duplicate detection
Fixed persistent duplicate settings page by improving duplicate detection to check by class type and ID instead of strict instance comparison. Issue: - Strict instance comparison (===) failed to detect duplicates - Different object instances of same class not caught by previous check - Settings page still appearing twice despite singleton and instance caching Solution: - Changed duplicate detection from instance comparison to type/ID checks - Added instanceof WC_TPP_Settings check - Added get_id() method check for ID 'tier_package_prices' - Added direct id property check as fallback - Multiple layers of detection to catch duplicates regardless of how created Fixes: - Settings page rendering twice in WooCommerce backend - Duplicate detection failing for different instances of same class Changes: - Enhanced add_settings_page() with multi-layer duplicate detection - Checks: instanceof, get_id(), and id property - Returns early if any existing page matches criteria Technical Details: - Strict comparison only works if exact same object instance - Different instances (even of same class/ID) fail === check - instanceof checks class type regardless of which instance - ID checks ensure no duplicate pages with same identifier - Fallback checks handle different WooCommerce versions/implementations Updated Files: - includes/class-wc-tpp-admin.php (enhanced duplicate detection) - wc-tier-and-package-prices.php (version 1.1.19) - composer.json (version 1.1.19) - CHANGELOG.md (v1.1.19 section) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
21
CHANGELOG.md
21
CHANGELOG.md
@@ -5,6 +5,27 @@ All notable changes to WooCommerce Tier and Package Prices will be documented in
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.1.19] - 2025-12-22
|
||||
|
||||
### Fixed
|
||||
|
||||
- Settings page still appearing twice despite instance caching
|
||||
- Duplicate detection using strict instance comparison failing for different object instances
|
||||
|
||||
### Changed
|
||||
|
||||
- Enhanced duplicate detection to check by class type and ID instead of instance
|
||||
- Added `instanceof WC_TPP_Settings` check
|
||||
- Added ID-based duplicate detection via `get_id()` method and direct property access
|
||||
- Multiple fallback checks to catch duplicates regardless of instance identity
|
||||
|
||||
### Technical Details
|
||||
|
||||
- Previous strict comparison (`===`) failed when different instances of same class existed
|
||||
- New approach checks: instanceof, get_id() method, and id property
|
||||
- Returns early if any settings page with ID 'tier_package_prices' found
|
||||
- Prevents duplicates even if settings instance recreated or serialized
|
||||
|
||||
## [1.1.18] - 2025-12-22
|
||||
|
||||
### Fixed
|
||||
|
||||
Reference in New Issue
Block a user