Release version 1.1.13 - Critical class redeclaration fixes

Fixed critical class redeclaration errors affecting all plugin functionality
in version 1.1.12. All plugin component classes now properly guarded.

**CRITICAL FIXES:**
- Plugin completely non-functional in v1.1.12 (no settings, no frontend, no backend)
- Fatal errors for WC_TPP_Admin, WC_TPP_Product_Meta, WC_TPP_Frontend, WC_TPP_Cart, WC_TPP_Settings classes
- All classes now wrapped in class_exists() checks

**Files Modified:**
- includes/class-wc-tpp-admin.php
- includes/class-wc-tpp-product-meta.php
- includes/class-wc-tpp-frontend.php
- includes/class-wc-tpp-cart.php
- includes/class-wc-tpp-settings.php

**Technical Details:**
- Completes comprehensive redeclaration protection started in v1.1.9-1.1.12
- All 2 functions, 4 constants, and 6 classes now protected
- Plugin activates successfully and all features functional
- Settings page, product meta boxes, frontend display, cart integration all working

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-22 19:02:18 +01:00
parent 9dab123209
commit 4dd9b3cd62
11 changed files with 45 additions and 9 deletions

View File

@@ -7,7 +7,8 @@ if (!defined('ABSPATH')) {
exit;
}
class WC_TPP_Admin {
if (!class_exists('WC_TPP_Admin')) {
class WC_TPP_Admin {
public function __construct() {
add_filter('woocommerce_get_settings_pages', array($this, 'add_settings_page'));
@@ -29,3 +30,4 @@ class WC_TPP_Admin {
}
}
}
}

View File

@@ -7,7 +7,8 @@ if (!defined('ABSPATH')) {
exit;
}
class WC_TPP_Cart {
if (!class_exists('WC_TPP_Cart')) {
class WC_TPP_Cart {
public function __construct() {
add_action('woocommerce_before_calculate_totals', array($this, 'apply_tier_package_pricing'), 10, 1);
@@ -247,3 +248,4 @@ class WC_TPP_Cart {
return $editable;
}
}
}

View File

@@ -7,7 +7,8 @@ if (!defined('ABSPATH')) {
exit;
}
class WC_TPP_Frontend {
if (!class_exists('WC_TPP_Frontend')) {
class WC_TPP_Frontend {
public function __construct() {
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
@@ -182,3 +183,4 @@ class WC_TPP_Frontend {
return $new_html;
}
}
}

View File

@@ -7,7 +7,8 @@ if (!defined('ABSPATH')) {
exit;
}
class WC_TPP_Product_Meta {
if (!class_exists('WC_TPP_Product_Meta')) {
class WC_TPP_Product_Meta {
public function __construct() {
add_action('woocommerce_product_options_pricing', array($this, 'add_tier_pricing_fields'));
@@ -167,3 +168,4 @@ class WC_TPP_Product_Meta {
update_post_meta($post_id, '_wc_tpp_restrict_to_packages', $restrict_to_packages);
}
}
}

View File

@@ -18,7 +18,8 @@ if (!class_exists('WC_Settings_Page')) {
/**
* WC_TPP_Settings class
*/
class WC_TPP_Settings extends WC_Settings_Page {
if (!class_exists('WC_TPP_Settings')) {
class WC_TPP_Settings extends WC_Settings_Page {
/**
* Constructor
@@ -139,5 +140,9 @@ class WC_TPP_Settings extends WC_Settings_Page {
WC_Admin_Settings::save_fields($settings);
}
}
}
return new WC_TPP_Settings();
if (class_exists('WC_TPP_Settings')) {
return new WC_TPP_Settings();
}
return null;