• Release version 1.1.16 - Singleton pattern for settings page

    magdev released this 2025-12-22 19:01:27 +00:00 | 66 commits to main since this release

    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

    Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

    Downloads