Added three new customer-facing features to improve product page interaction and tier pricing functionality. Features: - Optional text labels for tier pricing (similar to package labels) - Clickable tier pricing table rows to auto-populate quantity field - Add to Cart button auto-disables when quantity is 0 or less Enhanced User Experience: - Tier pricing rows now clickable with cursor pointer and hover animation - Clicking tier row sets quantity and smoothly scrolls to quantity field - Add to Cart button shows disabled state with reduced opacity - Tier labels display below quantity in italic gray text Technical Changes: - Added optional 'label' field to tier pricing admin meta box - Updated tier save logic to include label field (sanitized) - Enhanced tier pricing frontend template to display labels - Added click handler for tier pricing rows in frontend.js - Added updateAddToCartButton() function to manage button state - CSS: .wc-tpp-tier-label styling for tier labels - CSS: Clickable cursor and hover transform for tier rows - CSS: Disabled button styling (.single_add_to_cart_button:disabled) Updated Files: - templates/admin/tier-row.twig (added label field) - includes/class-wc-tpp-product-meta.php (save label, template update) - templates/frontend/tier-pricing-table.twig (display labels) - assets/js/frontend.js (tier row clicks, button disable logic) - assets/css/frontend.css (tier label style, clickable rows, disabled button) - wc-tier-and-package-prices.php (version 1.1.7) - composer.json (version 1.1.7) - CHANGELOG.md (v1.1.7 section) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
12 KiB
WooCommerce Tier and Package Prices - Release 1.1.6
Release Date: December 22, 2025 Version: 1.1.6 Package Size: 54 KB Git Tag: v1.1.6
Download
File: wc-tier-and-package-prices-1.1.6.zip
Checksums
SHA256:
730e366764449ac963bc85848ac8a91f654e4b35500ed3132a280ab4f215c80c
MD5:
dbea10acffdc849f9aa387d128cb6d6e
What's New in 1.1.6
This is a critical bug fix release that resolves fatal errors introduced in versions 1.1.3, 1.1.4, and 1.1.5 during plugin activation.
Critical Fixes
- Plugin Activation Fatal Error - FIXED
- Fatal error caused by premature class instantiation before WooCommerce is loaded
- Removed immediate class instantiation from
class-wc-tpp-cart.phpandclass-wc-tpp-frontend.php - Ensures WooCommerce is fully loaded before registering hooks that depend on WC functions
Technical Changes
- Moved
WC_TPP_CartandWC_TPP_Frontendinstantiation towoocommerce_loadedhook - Added
init_classes()method to main plugin class for controlled class initialization - Fixed hook registration timing to prevent accessing WooCommerce before it's available
What Was Fixed
The Problem (v1.1.3, v1.1.4, v1.1.5)
The previous three versions had a critical bug that caused fatal errors during plugin activation:
Error Message:
Fatal error: Call to undefined function WC()
Fatal error: Call to undefined function is_cart()
Fatal error: Call to undefined function is_checkout()
Root Cause:
- Classes
WC_TPP_CartandWC_TPP_Frontendwere instantiated immediately in their files - These classes register hooks that call WooCommerce functions (
WC(),is_cart(), etc.) - During plugin activation, these files are included before WooCommerce is loaded
- Hook registration attempts to call undefined WooCommerce functions
- Result: Fatal error and plugin activation failure
Impact:
- Plugin could not be activated on fresh installations
- Plugin could not be updated from v1.1.2 or earlier
- Affected all users attempting to install/update in v1.1.3-v1.1.5
The Solution (v1.1.6)
Before (v1.1.3-v1.1.5):
// At bottom of class-wc-tpp-cart.php and class-wc-tpp-frontend.php
new WC_TPP_Cart(); // Instantiated immediately!
new WC_TPP_Frontend(); // Instantiated immediately!
After (v1.1.6):
// In main plugin file (wc-tier-and-package-prices.php)
private function includes() {
// ... require files ...
// 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();
}
Why This Works:
- Class files are required but not instantiated during
includes() - Main plugin hooks into
woocommerce_loadedaction - WooCommerce fully loads and defines all functions
init_classes()is called, safely instantiating classes- All WooCommerce functions are available when hooks are registered
Affected Versions
Broken Versions
- ❌ v1.1.3 - Plugin activation fatal error
- ❌ v1.1.4 - Plugin activation fatal error
- ❌ v1.1.5 - Plugin activation fatal error (attempted fix failed)
Fixed Versions
- ✅ v1.1.6 - Plugin activation works correctly
- ✅ v1.1.2 - No activation issues (last working version before bug)
Installation
New Installation
- Download the ZIP file:
wc-tier-and-package-prices-1.1.6.zip - Log in to your WordPress admin panel
- Navigate to Plugins > Add New > Upload Plugin
- Choose the downloaded ZIP file
- Click Install Now
- After installation, click Activate Plugin
- Go to WooCommerce > Settings > Tier & Package Prices to configure
Upgrade from 1.1.5, 1.1.4, or 1.1.3
This is a critical bug fix release. If you have v1.1.3, v1.1.4, or v1.1.5 installed and working, upgrade to v1.1.6 immediately.
Important Notes:
- If your current version is working, you likely installed it on a site where WooCommerce was already active
- The bug only manifests during fresh activation or when upgrading with the plugin deactivated
- Upgrade is safe and preserves all settings and data
Steps:
- Deactivate current version (if active)
- Delete the plugin from WordPress admin
- Upload and activate version 1.1.6
- All existing settings and data will be automatically preserved
- No additional configuration required
Upgrade from 1.1.2 or Earlier
Safe to upgrade directly. This version includes all features from v1.1.0, v1.1.1, and v1.1.2, plus the critical activation fix.
Steps:
- Deactivate the current version
- Upload and activate version 1.1.6
- All existing settings and data will be automatically preserved
- Enjoy all new features with working activation
Can't Activate v1.1.3, v1.1.4, or v1.1.5?
If you downloaded v1.1.3, v1.1.4, or v1.1.5 and cannot activate it, use v1.1.6 instead.
Steps:
- Delete the broken version from WordPress admin (if present)
- Download
wc-tier-and-package-prices-1.1.6.zip - Upload and activate version 1.1.6
- Configuration and setup will work correctly
Requirements
- WordPress: 6.0 or higher
- PHP: 7.4 or higher
- WooCommerce: 8.0 or higher (must be installed and activated)
What Features Are Included
Version 1.1.6 includes all features from v1.1.0 through v1.1.4, with the critical activation bug fixed:
Complete Package Restriction Feature
- ✅ Catalog pages: "View Options" button (v1.1.2 + v1.1.4 enhanced styling)
- ✅ Product page: Quantity field hiding and package selection (v1.1.0)
- ✅ Add to cart: Server-side validation (v1.1.0)
- ✅ Classic cart: Quantity field hiding (v1.1.1 + v1.1.3 fixes)
- ✅ WooCommerce Blocks: Cart and mini-cart support (v1.1.4)
- ✅ All features now work with correct activation (v1.1.6)
Settings
- ✅ Global setting to enable restrictions site-wide
- ✅ Per-product override for individual products
- ✅ Located in: WooCommerce > Settings > Tier & Package Prices
Modified Files in 1.1.6
Core Files Updated
wc-tier-and-package-prices.php:- Added
init_classes()method (lines 86-89) - Modified
includes()to defer class instantiation (line 83) - No version number change (remains 1.1.6)
- Added
PHP Classes Modified
-
includes/class-wc-tpp-cart.php:- Removed immediate instantiation (removed
new WC_TPP_Cart();from bottom)
- Removed immediate instantiation (removed
-
includes/class-wc-tpp-frontend.php:- Removed immediate instantiation (removed
new WC_TPP_Frontend();from bottom)
- Removed immediate instantiation (removed
No Other Changes
- All functionality remains identical to v1.1.4
- No CSS changes
- No JavaScript changes
- No template changes
- No translation changes
- No feature changes
Complete Feature Set
Tier Pricing
- ✅ Quantity-based discount tiers
- ✅ Automatic price calculation
- ✅ Volume discount display
Package Pricing
- ✅ Fixed-price bundles
- ✅ Custom package labels
- ✅ Multiple package options per product
- ✅ Quantity restriction to packages only (v1.1.0)
- ✅ Cart quantity enforcement (v1.1.1 + v1.1.3)
- ✅ Catalog button modification (v1.1.2 + v1.1.4 enhanced)
- ✅ WooCommerce Blocks support (v1.1.4)
- ✅ Working plugin activation (v1.1.6 - FIXED)
Admin Features
- ✅ WooCommerce Settings integration
- ✅ Easy-to-use product meta boxes
- ✅ Configurable display positions
- ✅ Native WooCommerce UI
- ✅ Global restriction setting
- ✅ Per-product restriction override
Frontend Features
- ✅ Beautiful pricing tables (Twig templates)
- ✅ Real-time cart updates
- ✅ Responsive design
- ✅ 3 languages supported
- ✅ Package-only selection mode
- ✅ Automatic quantity field hiding (product page & cart)
- ✅ Visual package selection
- ✅ Read-only cart quantity display
- ✅ Professional "View Options" button (v1.1.4 enhanced)
- ✅ WooCommerce Blocks compatibility (v1.1.4)
Validation & Security
- ✅ Client-side JavaScript validation
- ✅ Server-side cart validation
- ✅ Cart quantity bypass prevention
- ✅ Catalog add-to-cart prevention
- ✅ Store API integration (v1.1.4)
- ✅ User-friendly error messages
- ✅ WooCommerce HPOS compatible
- ✅ Theme/plugin conflict resistant
- ✅ WooCommerce Blocks compatible (v1.1.4)
- ✅ Proper plugin activation (v1.1.6 - FIXED)
Breaking Changes
None. This release is fully backward compatible with v1.1.2 and all v1.0.x versions.
About v1.1.3, v1.1.4, v1.1.5
These versions had activation bugs and should not be used. If you have them installed and working, upgrade to v1.1.6 for stability.
Migration Notes
From 1.1.5, 1.1.4, or 1.1.3
- Immediate upgrade recommended (critical bug fix)
- No functionality changes, only activation fix
- All settings preserved
- No configuration needed
From 1.1.2 or Earlier
- All v1.1.0+ features included automatically
- Restriction features remain as configured
- WooCommerce Blocks now fully supported
- Plugin activation now works correctly
Settings Location
All settings remain in: WooCommerce > Settings > Tier & Package Prices
Data Preservation
- All existing tier pricing data preserved
- All existing package pricing data preserved
- All product meta data preserved
- No database changes required
Known Limitations
Current Version
- Restriction only works when packages are defined
- Cannot restrict to tier quantities (only packages)
- Restriction applies to entire product (no variation-level control)
- Cart quantity is read-only text (not a dropdown of package options)
- "View Options" button inherits theme colors (not customizable separately)
Future Enhancements
These features may be added in future versions:
- Customizable "View Options" button text and colors
- Cart package quantity dropdown selector
- Variation-level restriction control
- Restrict to tier quantities option
- Minimum/maximum package selection limits
Changelog Summary
Version History
- v1.1.6 (2025-12-22) - Critical fix for plugin activation
- v1.1.5 (2025-12-21) - Critical bug fix attempt (incomplete)
- v1.1.4 (2025-12-21) - WooCommerce Blocks support + improved button styling
- v1.1.3 (2025-12-21) - Cart quantity visibility bug fix
- v1.1.2 (2025-12-21) - Catalog button modification
- v1.1.1 (2025-12-21) - Cart quantity bypass fix
- v1.1.0 (2025-12-21) - Package quantity restriction feature
- v1.0.2 (2025-12-21) - WooCommerce Settings integration
- v1.0.1 (2025-12-21) - Twig template engine integration
- v1.0.0 (2025-12-21) - Initial release
User Impact
Before v1.1.6
- Unable to activate plugin on fresh installations
- Unable to update from v1.1.2 or earlier with plugin deactivated
- Fatal errors during activation process
- Plugin unusable for new users
After v1.1.6
- Plugin activates correctly on all WordPress installations
- Safe updates from any previous version
- All features work as intended
- Production ready for all users
Recommendation
For New Users
- ✅ Use v1.1.6 - Latest stable version with all features and working activation
For Users on v1.1.5, v1.1.4, or v1.1.3
- ⚠️ Upgrade to v1.1.6 - Critical bug fix for stability
For Users on v1.1.2 or Earlier
- ✅ Upgrade to v1.1.6 - Get all new features plus stable activation
Support
- Documentation: See README.md and CHANGELOG.md
- Previous Release: See RELEASE-INFO-1.1.4.md
- Issues: https://src.bundespruefstelle.ch/magdev/wc-tier-package-prices/issues
- Author: Marco Graetsch
License
GPL v2 or later - https://www.gnu.org/licenses/gpl-2.0.html
Production Ready: This package includes optimized autoloader and no development dependencies.
Critical Update: Version 1.1.6 is a critical update for anyone on v1.1.3, v1.1.4, or v1.1.5. The plugin activation bug is now fixed and all features work correctly.