Files
wc-tier-and-package-prices/CHANGELOG.md

203 lines
7.8 KiB
Markdown
Raw Normal View History

# Changelog
All notable changes to WooCommerce Tier and Package Prices will be documented in this file.
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.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
- WooCommerce Blocks support for quantity restrictions
- `woocommerce_store_api_product_quantity_editable` filter for block-based carts
- `block_quantity_editable()` method in WC_TPP_Cart class
- CSS targeting for `.wc-block-components-quantity-selector` elements
### Enhanced
- "View Options" button styling to match standard WooCommerce "Add to Cart" buttons
- Button padding, font weight, and border radius for better visual consistency
- Hover effects with smooth transitions
### Fixed
- WooCommerce blocks cart quantity selector visibility for restricted products
- WooCommerce blocks mini-cart quantity selector visibility
### Technical
- Added Store API integration for block-based cart/mini-cart
- Enhanced CSS for block cart items with product-specific selectors
- Improved button styling with WooCommerce standard values (0.618em × 1em padding)
- Added transition effects for better UX
## [1.1.3] - 2025-12-21
### Fixed
- Cart quantity input visibility issue in cart and cart sidebar for restricted products
- Enhanced filter priority (999) to ensure quantity hiding runs after other plugins
- Mini-cart quantity input now properly hidden for restricted products
### Added
- `woocommerce_widget_cart_item_quantity` filter support for mini-cart
- `add_cart_quantity_css()` method for dynamic CSS injection
- `data-product-id` attribute to quantity spans for targeted CSS selectors
- CSS class `wc-tpp-restricted-qty` for improved targeting
### Technical
- Increased filter priority from 10 to 999 for `woocommerce_cart_item_quantity`
- Added `maybe_hide_mini_cart_quantity_input()` method in WC_TPP_Cart class
- Dynamic CSS injection via `wp_head` action as fallback
- Used both sibling (+) and general sibling (~) CSS selectors for DOM variations
## [1.1.2] - 2025-12-21
### Added
- Catalog "View Options" button for products with quantity restrictions
- Automatic button replacement in shop/category/archive pages
- Eye icon (Dashicons) for "View Options" button styling
### Changed
- "Add to Cart" button replaced with "View Options" link on catalog pages for restricted products
- CSS now loads on all WooCommerce pages (shop, cart, checkout, product)
- Catalog buttons now direct to product page instead of adding to cart
### Technical
- Added `has_quantity_restriction()` static method in WC_TPP_Frontend class
- Added `modify_catalog_add_to_cart_button()` method in WC_TPP_Frontend class
- Extended `woocommerce_loop_add_to_cart_link` filter hook
- CSS classes: `wc-tpp-view-options`, `wc-tpp-cart-quantity`, `wc-tpp-restriction-notice`
- Updated `enqueue_scripts()` to load CSS on all WooCommerce pages
### Translations
- Added 2 new translatable strings
- Updated all translations (en_US, de_DE, de_CH_informal)
- Compiled all .mo files with new strings
## [1.1.1] - 2025-12-21
### Added
- Cart quantity field hiding when package restriction is enabled
- Automatic read-only quantity display in cart for restricted products
### Changed
- Cart quantity input replaced with plain text when restrictions apply
- Enhanced cart display to prevent quantity modification for restricted products
### Fixed
- Cart quantity bypass vulnerability for package-restricted products
### Technical
- Added `maybe_hide_cart_quantity_input()` method in WC_TPP_Cart class
- Extended `woocommerce_cart_item_quantity` filter hook
- CSS class `wc-tpp-cart-quantity` for styled quantity display
## [1.1.0] - 2025-12-21
### Added
- Package quantity restriction feature
- Global setting to restrict quantities to defined package sizes
- Per-product setting to restrict quantities to defined package sizes
- Frontend validation preventing non-package quantities
- Server-side cart validation for package quantities
- User-friendly error messages showing available package sizes
- Automatic quantity field hiding when restriction is enabled
- Package selection UI with highlighted states
### Changed
- Enhanced package pricing display template with restriction mode support
- Improved JavaScript to handle restricted mode package selection
- Updated frontend to show "Choose a package size below" notice in restricted mode
### Technical
- Added `validate_package_quantity()` method in WC_TPP_Cart class
- Added `maybe_hide_quantity_input()` method in WC_TPP_Frontend class
- Extended `woocommerce_add_to_cart_validation` filter hook
- Added `wc-tpp-restricted-mode` CSS class for styling
- New product meta: `_wc_tpp_restrict_to_packages`
- New global option: `wc_tpp_restrict_package_quantities`
### Translations
- Added 7 new translatable strings
- Updated all translations (en_US, de_DE, de_CH_informal)
- Compiled all .mo files with new strings
## [1.0.2] - 2025-12-21
### Changed
- Migrated settings to WooCommerce Settings page as dedicated tab
- Settings now appear under WooCommerce > Settings > Tier & Package Prices
- Improved integration with WooCommerce native settings API
### Added
- WC_TPP_Settings class extending WC_Settings_Page
- Better integration with WooCommerce settings system
- Consistent UI with other WooCommerce settings tabs
### Removed
- Standalone settings submenu (WooCommerce > Tier & Package Prices)
- Custom settings template (templates/admin/settings-page.twig)
### Technical
- Implemented WooCommerce settings filter hook (woocommerce_get_settings_pages)
- Uses WC_Admin_Settings for rendering and saving
- Automatic settings persistence via WooCommerce API
## [1.0.1] - 2025-12-21
### Added
- Twig template engine integration for all templates
- Template loader class with WordPress integration
- German (Switzerland, Informal) translation (de_CH_informal)
- Composer dependency management
- Comprehensive translation support in Twig templates
- Template caching support (disabled in debug mode)
### Changed
- Migrated all PHP templates to Twig format (.twig)
- Improved template organization and separation of concerns
- Enhanced security with automatic HTML escaping in templates
- Updated composer.json with complete package metadata
### Removed
- Old PHP template files (replaced with Twig)
### Technical
- Added Twig v3.22.2 dependency
- Created WC_TPP_Template_Loader class for centralized template rendering
- Integrated WordPress functions (__(), _e(), esc_*, wc_price()) into Twig
- Added Swiss German localization with informal address form
- Organized templates into admin/ and frontend/ directories
## [1.0.0] - 2025-12-21
### Added
- Initial release
- Tier pricing functionality (quantity-based discounts)
- Package pricing functionality (fixed-price bundles)
- Admin settings page for plugin configuration
- Product meta boxes for configuring tier and package prices
- Frontend pricing tables display
- Cart integration for automatic price calculation
- WooCommerce HPOS compatibility
- Multilingual support with text domain
- German (Germany) translation (de_DE)
- English (US) translation (en_US)
### Features
- Volume discounts based on quantity thresholds
- Fixed-price packages with custom labels
- Configurable display positions (before/after cart button, after price)
- Real-time price updates in cart
- Responsive pricing tables
- Admin-friendly interface for price management