diff --git a/CHANGELOG.md b/CHANGELOG.md index c35e69f..cb9cc8b 100644 --- a/CHANGELOG.md +++ b/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.13] - 2025-12-22 + +### Fixed + +- **CRITICAL:** Class redeclaration errors for all plugin component classes affecting version 1.1.12 +- Fatal errors "Cannot redeclare class WC_TPP_Admin", "Cannot redeclare class WC_TPP_Product_Meta", "Cannot redeclare class WC_TPP_Frontend", "Cannot redeclare class WC_TPP_Cart", "Cannot redeclare class WC_TPP_Settings" +- Plugin functionality completely broken in v1.1.12 - no settings page, no frontend display, no backend controls +- All plugin features now working correctly after adding class guards + +### Technical Details + +- Wrapped all 5 plugin component class declarations in `class_exists()` checks: + - `WC_TPP_Admin` (includes/class-wc-tpp-admin.php) + - `WC_TPP_Product_Meta` (includes/class-wc-tpp-product-meta.php) + - `WC_TPP_Frontend` (includes/class-wc-tpp-frontend.php) + - `WC_TPP_Cart` (includes/class-wc-tpp-cart.php) + - `WC_TPP_Settings` (includes/class-wc-tpp-settings.php) +- Completes comprehensive redeclaration protection started in v1.1.9-1.1.12 +- All functions, constants, and classes now fully protected against redeclaration +- Plugin now activates and functions correctly without fatal errors + ## [1.1.12] - 2025-12-22 ### Fixed diff --git a/composer.json b/composer.json index d2c4d7a..f7976dd 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "magdev/wc-tier-package-prices", "description": "WooCommerce plugin for tier pricing and package prices with Twig templates", - "version": "1.1.12", + "version": "1.1.13", "type": "wordpress-plugin", "license": "GPL-2.0-or-later", "authors": [ diff --git a/includes/class-wc-tpp-admin.php b/includes/class-wc-tpp-admin.php index 9b2d70c..16b6fc0 100644 --- a/includes/class-wc-tpp-admin.php +++ b/includes/class-wc-tpp-admin.php @@ -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 { } } } +} diff --git a/includes/class-wc-tpp-cart.php b/includes/class-wc-tpp-cart.php index 50fa6f0..8f9f576 100644 --- a/includes/class-wc-tpp-cart.php +++ b/includes/class-wc-tpp-cart.php @@ -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; } } +} diff --git a/includes/class-wc-tpp-frontend.php b/includes/class-wc-tpp-frontend.php index b488dfc..35ab309 100644 --- a/includes/class-wc-tpp-frontend.php +++ b/includes/class-wc-tpp-frontend.php @@ -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; } } +} diff --git a/includes/class-wc-tpp-product-meta.php b/includes/class-wc-tpp-product-meta.php index 3137afb..4f6f780 100644 --- a/includes/class-wc-tpp-product-meta.php +++ b/includes/class-wc-tpp-product-meta.php @@ -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); } } +} diff --git a/includes/class-wc-tpp-settings.php b/includes/class-wc-tpp-settings.php index a8b10ab..dfd1938 100644 --- a/includes/class-wc-tpp-settings.php +++ b/includes/class-wc-tpp-settings.php @@ -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; diff --git a/releases/wc-tier-and-package-prices-1.1.13.zip b/releases/wc-tier-and-package-prices-1.1.13.zip new file mode 100644 index 0000000..00bfd97 Binary files /dev/null and b/releases/wc-tier-and-package-prices-1.1.13.zip differ diff --git a/releases/wc-tier-and-package-prices-1.1.13.zip.md5 b/releases/wc-tier-and-package-prices-1.1.13.zip.md5 new file mode 100644 index 0000000..514ce03 --- /dev/null +++ b/releases/wc-tier-and-package-prices-1.1.13.zip.md5 @@ -0,0 +1 @@ +8572eed399554905fbf331d18f0677a0 wc-tier-and-package-prices-1.1.13.zip diff --git a/releases/wc-tier-and-package-prices-1.1.13.zip.sha256 b/releases/wc-tier-and-package-prices-1.1.13.zip.sha256 new file mode 100644 index 0000000..6aa5383 --- /dev/null +++ b/releases/wc-tier-and-package-prices-1.1.13.zip.sha256 @@ -0,0 +1 @@ +83e29b2e40dd43e77bd83cd03d4ccc54ef53555b55544eba4d38161101f79f20 wc-tier-and-package-prices-1.1.13.zip diff --git a/wc-tier-and-package-prices.php b/wc-tier-and-package-prices.php index 2eaf14e..27ae403 100644 --- a/wc-tier-and-package-prices.php +++ b/wc-tier-and-package-prices.php @@ -4,7 +4,7 @@ * Plugin Name: WooCommerce Tier and Package Prices * Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-tier-package-prices * Description: Add tier pricing and package prices to WooCommerce products with configurable quantities at fixed prices - * Version: 1.1.12 + * Version: 1.1.13 * Author: Marco Graetsch * Author URI: https://src.bundespruefstelle.ch/magdev * Text Domain: wc-tier-package-prices @@ -23,7 +23,7 @@ if (!defined('ABSPATH')) { // Define plugin constants if (!defined('WC_TPP_VERSION')) { - define('WC_TPP_VERSION', '1.1.12'); + define('WC_TPP_VERSION', '1.1.13'); } if (!defined('WC_TPP_PLUGIN_DIR')) { define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));