Compare commits

...
3 Commits
Author SHA1 Message Date
magdevandClaude Sonnet 4.5 e2a11de80a Release version 1.1.6 - Minor improvements
Updated Plugin URI to correct repository path and added notes files to gitignore.

Changes:
- Updated Plugin URI from /wc-tier-package-prices to /magdev/wc-tier-package-prices
- Added notes.* to .gitignore to exclude local notes files

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 00:02:19 +01:00
magdevandClaude Sonnet 4.5 e40830b69b Release version 1.1.6 - Critical fix for plugin activation
Fixed critical bug that prevented plugin activation in v1.1.3, v1.1.4, and v1.1.5.

Root Cause:
- WC_TPP_Cart and WC_TPP_Frontend classes were instantiated immediately when
  their files were loaded (via `new ClassName();` at bottom of files)
- This happened BEFORE WooCommerce was fully loaded
- Hook registration attempted to access WooCommerce functions before they existed
- Result: Fatal error during plugin activation

Solution:
- Removed immediate instantiation from class-wc-tpp-cart.php (line 251)
- Removed immediate instantiation from class-wc-tpp-frontend.php (line 186)
- Added init_classes() method to main plugin class
- Classes now instantiated via woocommerce_loaded hook
- Ensures WooCommerce is fully initialized before any hooks are registered

Changes:
- includes/class-wc-tpp-cart.php - Removed `new WC_TPP_Cart();`
- includes/class-wc-tpp-frontend.php - Removed `new WC_TPP_Frontend();`
- wc-tier-and-package-prices.php - Added init_classes() and woocommerce_loaded hook
- CHANGELOG.md - Added v1.1.6 section
- composer.json - Version 1.1.6
- All translation files updated to 1.1.6
- All .mo files recompiled

This fix ensures proper WordPress plugin lifecycle:
1. Plugin file loaded
2. Classes defined (but not instantiated)
3. WooCommerce loads
4. woocommerce_loaded hook fires
5. Classes instantiated with full WooCommerce availability

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 19:57:27 +01:00
magdevandClaude Sonnet 4.5 9765c5f119 Release version 1.1.5 - Critical bug fix for plugin activation
CRITICAL FIX: Resolved fatal error that prevented plugin activation in
versions 1.1.3 and 1.1.4. The add_cart_quantity_css() method was attempting
to access WooCommerce cart object during wp_head action, causing failures
when WooCommerce wasn't fully initialized or on admin pages.

Fixes:
- Plugin activation error in v1.1.3 and v1.1.4
- Fatal error when WooCommerce cart object not available
- Frontend errors on admin pages
- Issues during plugin initialization

Technical Changes:
- Added function_exists('WC') check before accessing WooCommerce
- Added is_admin() check to prevent CSS injection on admin pages
- Enhanced add_cart_quantity_css() with proper guards
- Line 191: if (!function_exists('WC') || !WC()->cart || is_admin())

Root Cause:
The add_cart_quantity_css() method (added in v1.1.3) hooks into wp_head
but didn't properly check if WooCommerce cart was available, causing
errors during plugin activation and on admin pages.

Updated Files:
- includes/class-wc-tpp-cart.php (enhanced error checking)
- wc-tier-and-package-prices.php (version 1.1.5)
- composer.json (version 1.1.5)
- CHANGELOG.md (v1.1.5 section)
- All translation files (.pot, .po, .mo) updated to version 1.1.5

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 19:49:24 +01:00
16 changed files with 47 additions and 13 deletions

No files matched your search

+3
View File
@@ -22,6 +22,9 @@ npm-debug.log
# Logs
*.log
# Notes
notes.*
# OS
.DS_Store
._*
+25
View File
@@ -5,6 +5,31 @@ 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.6] - 2025-12-21
### Fixed
- **CRITICAL:** Plugin activation fatal error in v1.1.3, v1.1.4, and v1.1.5
- Fatal error caused by premature class instantiation before WooCommerce is loaded
- Removed immediate class instantiation from `class-wc-tpp-cart.php` and `class-wc-tpp-frontend.php`
### Technical
- Moved `WC_TPP_Cart` and `WC_TPP_Frontend` instantiation to `woocommerce_loaded` hook
- Added `init_classes()` method to main plugin class for controlled class initialization
- Ensures WooCommerce is fully loaded before registering hooks that depend on WC functions
- Fixed hook registration timing to prevent accessing WooCommerce before it's available
## [1.1.5] - 2025-12-21
### Fixed
- **CRITICAL:** Plugin activation error in v1.1.3 and v1.1.4 caused by `add_cart_quantity_css()` method
- Fatal error when WooCommerce cart object not available during plugin initialization
- Frontend errors on admin pages and during activation
### Technical
- Added `function_exists('WC')` check before accessing WooCommerce functions
- Added `is_admin()` check to prevent CSS injection on admin pages
- Enhanced error prevention in `add_cart_quantity_css()` method
## [1.1.4] - 2025-12-21
### Added
+1 -1
View File
@@ -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.4",
"version": "1.1.6",
"type": "wordpress-plugin",
"license": "GPL-2.0-or-later",
"authors": [
+1 -3
View File
@@ -188,7 +188,7 @@ class WC_TPP_Cart {
public function add_cart_quantity_css() {
// Get all cart items and check which products have restrictions
if (!WC()->cart) {
if (!function_exists('WC') || !WC()->cart || is_admin()) {
return;
}
@@ -247,5 +247,3 @@ class WC_TPP_Cart {
return $editable;
}
}
new WC_TPP_Cart();
-2
View File
@@ -182,5 +182,3 @@ class WC_TPP_Frontend {
return $new_html;
}
}
new WC_TPP_Frontend();
Binary file not shown.
@@ -3,7 +3,7 @@
# This file is distributed under the GPL v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.4\n"
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.6\n"
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
Binary file not shown.
+1 -1
View File
@@ -3,7 +3,7 @@
# This file is distributed under the GPL v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.4\n"
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.6\n"
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
Binary file not shown.
+1 -1
View File
@@ -3,7 +3,7 @@
# This file is distributed under the GPL v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.4\n"
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.6\n"
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
+1 -1
View File
@@ -2,7 +2,7 @@
# This file is distributed under the GPL v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.4\n"
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.6\n"
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
"MIME-Version: 1.0\n"
Binary file not shown.
@@ -0,0 +1 @@
e9f8a69e4be107d857d3beb671d5a9fe wc-tier-and-package-prices-1.1.5.zip
@@ -0,0 +1 @@
a13d71f3f65c7cf41613f88d7bcfcb112acfefb800fa6b95932f44a47cf764f3 wc-tier-and-package-prices-1.1.5.zip
+11 -3
View File
@@ -2,9 +2,9 @@
/**
* Plugin Name: WooCommerce Tier and Package Prices
* Plugin URI: https://src.bundespruefstelle.ch/wc-tier-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.4
* Version: 1.1.6
* Author: Marco Graetsch
* Author URI: https://src.bundespruefstelle.ch/magdev
* Text Domain: wc-tier-package-prices
@@ -22,7 +22,7 @@ if (!defined('ABSPATH')) {
}
// Define plugin constants
define('WC_TPP_VERSION', '1.1.4');
define('WC_TPP_VERSION', '1.1.6');
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('WC_TPP_PLUGIN_URL', plugin_dir_url(__FILE__));
define('WC_TPP_PLUGIN_BASENAME', plugin_basename(__FILE__));
@@ -78,6 +78,14 @@ class WC_Tier_Package_Prices {
require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-product-meta.php';
require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-frontend.php';
require_once WC_TPP_PLUGIN_DIR . 'includes/class-wc-tpp-cart.php';
// Instantiate classes after WooCommerce is loaded
add_action('woocommerce_loaded', array($this, 'init_classes'));
}
public function init_classes() {
new WC_TPP_Frontend();
new WC_TPP_Cart();
}
public function declare_hpos_compatibility() {