Fixed critical plugin activation error that was preventing the plugin from being activated on WordPress 6.9.x and WooCommerce 10.x. The issue was introduced in v1.1.3 when admin classes were still being instantiated immediately at file include time, before WooCommerce was loaded. While v1.1.6 fixed this for Frontend and Cart classes, the Admin and Product Meta classes were missed. Critical Fix: - Removed immediate instantiation from WC_TPP_Admin class - Removed immediate instantiation from WC_TPP_Product_Meta class - Both classes now instantiated via woocommerce_loaded hook - Ensures all WooCommerce hooks are available before registration Technical Changes: - Removed "new WC_TPP_Admin();" from class-wc-tpp-admin.php - Removed "new WC_TPP_Product_Meta();" from class-wc-tpp-product-meta.php - Added both classes to init_classes() method in main plugin file - All four main classes now follow consistent initialization pattern Impact: - Plugin now activates correctly on all WordPress/WooCommerce versions - Resolves fatal errors during plugin activation - Last working version was v1.1.2, now fixed in v1.1.8 Updated Files: - includes/class-wc-tpp-admin.php (removed auto-instantiation) - includes/class-wc-tpp-product-meta.php (removed auto-instantiation) - wc-tier-and-package-prices.php (version 1.1.8, init_classes updated) - composer.json (version 1.1.8) - CHANGELOG.md (v1.1.8 section added) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
13 KiB
WooCommerce Tier and Package Prices - Release 1.1.7
Release Date: December 22, 2025 Version: 1.1.7 Package Size: 55 KB Git Tag: v1.1.7
Download
File: wc-tier-and-package-prices-1.1.7.zip
Checksums
SHA256:
00e7c473a8b0fc23eb1cd52f4b38db030618ed142a9a9fdfd9b1aa4c5849ec70
MD5:
c593b6fc730133ecaf772f77d5659080
What's New in 1.1.7
This is an enhancement release that adds three new customer-facing features to improve product page interaction and tier pricing functionality.
New Features
-
Optional Text Labels for Tier Pricing
- Add custom labels to tier pricing (e.g., "Wholesale", "Bulk Discount", "Business Rate")
- Labels display below quantity in tier pricing table
- Similar to existing package label functionality
- Completely optional - tiers work the same without labels
-
Clickable Tier Pricing Rows
- Click any row in the tier pricing table to auto-populate quantity field
- Smooth scroll animation brings quantity field into view
- Visual hover feedback shows rows are clickable
- Makes it easy for customers to select tier quantities
-
Add to Cart Button Auto-Disable
- Button automatically disables when quantity is 0 or less
- Visual feedback with reduced opacity and not-allowed cursor
- Prevents accidental form submission with invalid quantity
- Re-enables automatically when valid quantity is entered
What's Changed
Added
- Optional
labelfield in tier pricing admin meta box - Click handler for tier pricing table rows
- Add to Cart button state management function
- CSS styling for tier labels (italic, gray, smaller font)
- Cursor pointer and hover animation for tier rows
- Disabled button styling with visual feedback
Enhanced
- Tier pricing table now fully interactive and clickable
- Improved user experience with visual feedback throughout
- Better quantity selection workflow
- Prevents invalid cart submissions
Technical Details
PHP Changes:
templates/admin/tier-row.twig- Added label input fieldincludes/class-wc-tpp-product-meta.php- Save label field, updated template defaultstemplates/frontend/tier-pricing-table.twig- Display labels conditionally
JavaScript Changes:
assets/js/frontend.js- Added tier row click handler (lines 174-186)assets/js/frontend.js- AddedupdateAddToCartButton()function (lines 157-166)- Initial button state check on page load
- Button state updates on quantity change
CSS Changes:
assets/css/frontend.css-.wc-tpp-tier-labelstyling (lines 72-78)assets/css/frontend.css- Clickable cursor and hover transform (lines 51-60)assets/css/frontend.css- Disabled button styling (lines 213-218)
Installation
New Installation
- Download the ZIP file:
wc-tier-and-package-prices-1.1.7.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.6
This is an enhancement release with new UX features.
Steps:
- Deactivate version 1.1.6 (if active)
- Upload and activate version 1.1.7
- All existing settings and data will be automatically preserved
- No additional configuration required
- New features available immediately
What Happens After Upgrade:
- Existing tier pricing continues to work without labels
- To add labels, edit products and fill in the optional label field
- Tier rows are immediately clickable
- Add to Cart button auto-disable works automatically
Upgrade from 1.1.5 or Earlier
Safe to upgrade directly. This version includes all features from v1.1.6 plus three new UX enhancements.
Steps:
- Deactivate the current version
- Upload and activate version 1.1.7
- All existing settings and data will be automatically preserved
- Enjoy improved user experience
Requirements
- WordPress: 6.0 or higher
- PHP: 7.4 or higher
- WooCommerce: 8.0 or higher (must be installed and activated)
Feature Details
1. Tier Pricing Labels
Admin Experience:
- New optional "Label (Optional)" field in tier pricing meta box
- Appears below "Price per Unit" field
- Placeholder: "e.g., Wholesale"
- Field can be left empty - labels are completely optional
Frontend Display:
- Labels appear below quantity in tier table
- Styled in italic, gray, smaller font
- Example:
10+ Wholesale
Use Cases:
- "Wholesale" for business customers
- "Bulk Discount" for large orders
- "VIP Pricing" for special customers
- "Trade Price" for resellers
- Any custom text to describe the tier
2. Clickable Tier Rows
User Experience:
- Customer views tier pricing table on product page
- Hovers over any tier row - sees cursor change and subtle animation
- Clicks on desired tier row
- Quantity field automatically updates to that tier's minimum quantity
- Page smoothly scrolls to bring quantity field into view
- Customer clicks "Add to Cart"
Visual Feedback:
- Cursor changes to pointer when hovering
- Row slides slightly right on hover (2px transform)
- Background changes to light gray on hover
- Active tier highlighted in green (existing feature)
Technical:
- Click handler reads
data-min-qtyattribute from row - Sets quantity input value
- Triggers change event to update price display and highlighting
- Smooth scroll animation (300ms) to quantity field
3. Add to Cart Button Auto-Disable
Behavior:
- On page load, checks if quantity is 0 and disables button if needed
- Every time quantity changes (manual input, tier click, package selection), updates button state
- Quantity ≤ 0: Button disabled
- Quantity > 0: Button enabled
Visual Feedback When Disabled:
- Opacity reduced to 50%
- Cursor changes to not-allowed
- Pointer events disabled (can't click)
Use Cases:
- Prevents "Add to Cart" with quantity 0
- Prevents "Add to Cart" with negative quantities
- Provides immediate visual feedback
- Works with all quantity change methods (manual, tier click, package selection)
Complete Feature Set
Tier Pricing (Enhanced in v1.1.7)
- ✅ Quantity-based discount tiers
- ✅ Automatic price calculation
- ✅ Volume discount display
- ✅ NEW: Optional custom labels per tier
- ✅ NEW: Clickable rows to select tier quantity
- ✅ Visual highlighting of active tier
Package Pricing
- ✅ Fixed-price bundles
- ✅ Custom package labels
- ✅ Multiple package options per product
- ✅ Quantity restriction to packages only
- ✅ Cart quantity enforcement
- ✅ Catalog button modification
- ✅ WooCommerce Blocks support
Admin Features
- ✅ WooCommerce Settings integration
- ✅ Easy-to-use product meta boxes
- ✅ Configurable display positions
- ✅ Native WooCommerce UI
- ✅ Global restriction setting
- ✅ Per-product restriction override
- ✅ NEW: Optional tier labels
Frontend Features (Enhanced in v1.1.7)
- ✅ 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
- ✅ WooCommerce Blocks compatibility
- ✅ NEW: Clickable tier pricing rows
- ✅ NEW: Tier labels in pricing table
- ✅ NEW: Auto-disable invalid Add to Cart
User Experience (New in v1.1.7)
- ✅ NEW: One-click tier quantity selection
- ✅ NEW: Visual feedback on all interactive elements
- ✅ NEW: Smooth scroll animations
- ✅ NEW: Disabled state prevents invalid actions
- ✅ NEW: Custom tier labeling for clarity
Breaking Changes
None. This release is fully backward compatible with v1.1.6 and all previous versions.
Migration Notes
From 1.1.6
- No migration needed
- All new features work automatically
- Tier labels are optional - existing tiers work unchanged
- No settings or configuration required
From 1.1.5 or Earlier
- All v1.1.6 and v1.1.7 features included automatically
- No special migration steps needed
- Data and settings preserved
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
- Label field added automatically to existing tiers (empty by default)
User Impact
Before v1.1.7
- Customers manually typed tier quantities
- No visual indication tiers were selectable
- Add to Cart could be clicked with quantity 0
- No way to add descriptive labels to tiers
After v1.1.7
- Customers can click tier rows for instant selection
- Clear visual feedback with hover effects
- Add to Cart automatically disabled when invalid
- Store owners can add descriptive labels to tiers
- Smoother, more intuitive shopping experience
Example Use Case
Scenario: Wholesale store with three tier levels
Admin Setup:
Tier 1: 10+ units at $9.99 - Label: "Small Business"
Tier 2: 50+ units at $8.99 - Label: "Wholesale"
Tier 3: 100+ units at $7.99 - Label: "Distributor"
Customer Experience:
- Views product page with tier pricing table
- Sees three tiers with clear labels explaining each level
- Hovers over "Wholesale" tier - row highlights
- Clicks on "Wholesale" tier row
- Quantity field updates to 50
- Page scrolls smoothly to quantity field
- Price updates to $8.99 per unit
- Tier row highlighted in green
- Clicks "Add to Cart" (enabled because quantity > 0)
Browser & Theme Compatibility
Tested With
- ✅ Classic WooCommerce product pages
- ✅ WooCommerce Cart Block
- ✅ WooCommerce Mini-Cart Block
- ✅ Storefront theme
- ✅ Twenty Twenty-Four theme
- ✅ Astra theme
- ✅ Kadence theme
- ✅ All modern browsers (Chrome, Firefox, Safari, Edge)
JavaScript Requirements
- jQuery (included with WordPress)
- Modern browser with CSS transform support
- No additional dependencies
Known Limitations
Current Version
- Tier labels are plain text only (no HTML or formatting)
- Tier row click only works on non-restricted products
- Button disable only affects quantity 0, not other validation rules
- Label field limited to 255 characters (standard text field)
Future Enhancements
These features may be added in future versions:
- Rich text formatting for tier labels
- Customizable tier row click behavior
- Advanced button validation rules
- Tier label templates
- Color coding for tier levels
Changelog Summary
Version History
- v1.1.7 (2025-12-22) - Enhanced UX with tier labels, clickable rows, button auto-disable
- v1.1.6 (2025-12-21) - 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
Modified Files in 1.1.7
Core Files Updated
wc-tier-and-package-prices.php- Version updated to 1.1.7composer.json- Version updated to 1.1.7CHANGELOG.md- Added v1.1.7 section
Templates Modified
templates/admin/tier-row.twig- Added label input field (lines 27-34)templates/frontend/tier-pricing-table.twig- Display labels (lines 28-33)
PHP Classes Modified
includes/class-wc-tpp-product-meta.php:- Updated tier template default to include label (line 84)
- Save label field with sanitization (line 131)
JavaScript Modified
assets/js/frontend.js:- Added
$addToCartButtonselector (line 11) - Added
updateAddToCartButton()function (lines 158-166) - Added tier row click handler (lines 175-187)
- Button state update on quantity change (line 172)
- Initial button state check (lines 217-219)
- Added
CSS Modified
assets/css/frontend.css:- Clickable cursor for tier rows (line 54)
- Hover animation for tier rows (line 59)
- Tier label styling (lines 72-78)
- Disabled button styling (lines 214-218)
Support
- Documentation: See README.md and CHANGELOG.md
- Previous Release: See RELEASE-INFO-1.1.6.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.
Recommended Update: Version 1.1.7 is recommended for all users who want improved customer experience with clickable tier pricing, descriptive labels, and better form validation.