You've already forked wc-tier-and-package-prices
Fixed persistent duplicate settings page rendering by implementing proper singleton pattern for admin class and caching settings instance. Fixes: - Settings page still appearing twice despite v1.1.15 fix - Multiple instantiation of WC_TPP_Admin class - Duplicate creation of WC_TPP_Settings instances Changes: - Implemented singleton pattern for WC_TPP_Admin class - Added private static $instance property with get_instance() method - Made WC_TPP_Admin constructor private - Added static $settings_instance property to cache settings page - Modified add_settings_page() to check and reuse cached settings instance - Changed instantiation from new WC_TPP_Admin() to WC_TPP_Admin::get_instance() Technical Details: - Ensures only one WC_TPP_Admin instance exists throughout plugin lifecycle - Prevents duplicate filter registrations even if woocommerce_get_settings_pages called multiple times - Settings page object created once and reused on subsequent filter calls - Follows WordPress/WooCommerce best practices for singleton implementation Updated Files: - includes/class-wc-tpp-admin.php (singleton pattern implementation) - wc-tier-and-package-prices.php (version 1.1.16) - composer.json (version 1.1.16) - CHANGELOG.md (v1.1.16 section) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
23 lines
542 B
JSON
23 lines
542 B
JSON
{
|
|
"name": "magdev/wc-tier-package-prices",
|
|
"description": "WooCommerce plugin for tier pricing and package prices with Twig templates",
|
|
"version": "1.1.16",
|
|
"type": "wordpress-plugin",
|
|
"license": "GPL-2.0-or-later",
|
|
"authors": [
|
|
{
|
|
"name": "Marco Graetsch",
|
|
"homepage": "https://src.bundespruefstelle.ch/magdev"
|
|
}
|
|
],
|
|
"require": {
|
|
"php": ">=7.4",
|
|
"twig/twig": "^3.0"
|
|
},
|
|
"autoload": {
|
|
"classmap": [
|
|
"includes/"
|
|
]
|
|
}
|
|
}
|