You've already forked wc-tier-and-package-prices
Release version 1.1.21 - Add multilingual support for Swiss locales
Added translations for Swiss German (formal and informal), Swiss French, and Swiss Italian locales to support multilingual e-commerce in Switzerland. New Features: - Added de_CH (Swiss German - formal "Sie") translation - Added de_DE_informal (Informal German - "du") translation - Added fr_CH (Swiss French) translation - Added it_CH (Swiss Italian) translation Technical Changes: - Created 4 new .po translation source files - Compiled all .po files to .mo format for runtime use - Updated version to 1.1.21 in plugin header and constant - Updated composer.json version to 1.1.21 - Swiss locales use CHF currency formatting (e.g., "CHF 50.-") - German informal translations use "du/dein" instead of "Sie/Ihr" Documentation: - Updated CHANGELOG.md with v1.1.21 release notes - Updated CLAUDE.md with current version and translation status - Marked roadmap item as completed in CLAUDE.md Release Package: - Created wc-tier-and-package-prices-1.1.21.zip (404 KB) - Generated MD5 checksum: 16813b3ed0d1001d5f60194d61d36fc2 - Generated SHA256 checksum: e0063852a9ac23b1fd994471a2829f9dcbe26316f00ddee2d00f77c7c6a47c8f 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
43
CHANGELOG.md
43
CHANGELOG.md
@@ -5,6 +5,49 @@ 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/),
|
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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.1.21] - 2025-12-23
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- New translation for `de_CH` (Swiss German - formal)
|
||||||
|
- New translation for `de_DE_informal` (Informal German)
|
||||||
|
- New translation for `fr_CH` (Swiss French)
|
||||||
|
- New translation for `it_CH` (Swiss Italian)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated all translation files (.po) to version 1.1.21
|
||||||
|
- Compiled all translation files to .mo format for runtime use
|
||||||
|
|
||||||
|
### Technical Details
|
||||||
|
|
||||||
|
- Created 4 new locale-specific translation files following WordPress i18n standards
|
||||||
|
- Swiss locales use CHF currency formatting in examples (CHF 50.-, CHF 100.-)
|
||||||
|
- German informal translations use "du/dein" instead of "Sie/Ihr"
|
||||||
|
- All translations maintain consistent terminology across plugin UI
|
||||||
|
- Compiled .mo files included for immediate WordPress language support
|
||||||
|
|
||||||
|
## [1.1.20] - 2025-12-22
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **CRITICAL**: Fatal error in WooCommerce Blocks cart/mini-cart: "Cannot use object of type WC_Product_Simple as array"
|
||||||
|
- Filter `woocommerce_store_api_product_quantity_editable` signature mismatch
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated `is_quantity_editable_in_blocks()` method to accept `WC_Product` object instead of cart item array
|
||||||
|
- Changed method signature from `is_quantity_editable_in_blocks($cart_item)` to `is_quantity_editable_in_blocks(WC_Product $product)`
|
||||||
|
- Use `$product->get_id()` instead of `$cart_item['product_id']` for product identification
|
||||||
|
|
||||||
|
### Technical Details
|
||||||
|
|
||||||
|
- WooCommerce Store API passes product object to this filter, not cart item array
|
||||||
|
- Previous code attempted array access on product object causing fatal error
|
||||||
|
- Error occurred at `includes/class-wc-tpp-cart.php:233`
|
||||||
|
- Affects WooCommerce Blocks-based cart, mini-cart, and checkout
|
||||||
|
- Classic cart/checkout unaffected (uses different hooks)
|
||||||
|
|
||||||
## [1.1.19] - 2025-12-22
|
## [1.1.19] - 2025-12-22
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
63
CLAUDE.md
63
CLAUDE.md
@@ -1,7 +1,7 @@
|
|||||||
# WooCommerce Tier and Package Prices - AI Context Document
|
# WooCommerce Tier and Package Prices - AI Context Document
|
||||||
|
|
||||||
**Last Updated:** 2025-12-23
|
**Last Updated:** 2025-12-23
|
||||||
**Current Version:** 1.1.20
|
**Current Version:** 1.1.21
|
||||||
**Author:** Marco Graetsch
|
**Author:** Marco Graetsch
|
||||||
**Project Status:** Production-ready WordPress plugin
|
**Project Status:** Production-ready WordPress plugin
|
||||||
|
|
||||||
@@ -76,6 +76,7 @@ wc-tier-and-package-prices/
|
|||||||
### Class Responsibilities
|
### Class Responsibilities
|
||||||
|
|
||||||
#### 1. `WC_Tier_Package_Prices` (Main Plugin Class)
|
#### 1. `WC_Tier_Package_Prices` (Main Plugin Class)
|
||||||
|
|
||||||
- **Location:** `wc-tier-and-package-prices.php`
|
- **Location:** `wc-tier-and-package-prices.php`
|
||||||
- **Pattern:** Singleton
|
- **Pattern:** Singleton
|
||||||
- **Responsibilities:**
|
- **Responsibilities:**
|
||||||
@@ -86,6 +87,7 @@ wc-tier-and-package-prices/
|
|||||||
- Activation/deactivation hooks
|
- Activation/deactivation hooks
|
||||||
|
|
||||||
#### 2. `WC_TPP_Admin`
|
#### 2. `WC_TPP_Admin`
|
||||||
|
|
||||||
- **Location:** `includes/class-wc-tpp-admin.php`
|
- **Location:** `includes/class-wc-tpp-admin.php`
|
||||||
- **Pattern:** Singleton
|
- **Pattern:** Singleton
|
||||||
- **Responsibilities:**
|
- **Responsibilities:**
|
||||||
@@ -95,6 +97,7 @@ wc-tier-and-package-prices/
|
|||||||
- Product meta box asset loading
|
- Product meta box asset loading
|
||||||
|
|
||||||
#### 3. `WC_TPP_Settings`
|
#### 3. `WC_TPP_Settings`
|
||||||
|
|
||||||
- **Location:** `includes/class-wc-tpp-settings.php`
|
- **Location:** `includes/class-wc-tpp-settings.php`
|
||||||
- **Extends:** `WC_Settings_Page` (WooCommerce core)
|
- **Extends:** `WC_Settings_Page` (WooCommerce core)
|
||||||
- **Responsibilities:**
|
- **Responsibilities:**
|
||||||
@@ -103,6 +106,7 @@ wc-tier-and-package-prices/
|
|||||||
- Setting persistence through WooCommerce options API
|
- Setting persistence through WooCommerce options API
|
||||||
|
|
||||||
**Global Settings:**
|
**Global Settings:**
|
||||||
|
|
||||||
- `wc_tpp_enable_tier_pricing` (yes/no)
|
- `wc_tpp_enable_tier_pricing` (yes/no)
|
||||||
- `wc_tpp_enable_package_pricing` (yes/no)
|
- `wc_tpp_enable_package_pricing` (yes/no)
|
||||||
- `wc_tpp_display_table` (yes/no) - Show pricing tables on product pages
|
- `wc_tpp_display_table` (yes/no) - Show pricing tables on product pages
|
||||||
@@ -110,6 +114,7 @@ wc-tier-and-package-prices/
|
|||||||
- `wc_tpp_restrict_package_quantities` (yes/no) - Global quantity restrictions
|
- `wc_tpp_restrict_package_quantities` (yes/no) - Global quantity restrictions
|
||||||
|
|
||||||
#### 4. `WC_TPP_Product_Meta`
|
#### 4. `WC_TPP_Product_Meta`
|
||||||
|
|
||||||
- **Location:** `includes/class-wc-tpp-product-meta.php`
|
- **Location:** `includes/class-wc-tpp-product-meta.php`
|
||||||
- **Responsibilities:**
|
- **Responsibilities:**
|
||||||
- Adds tier/package pricing fields to product edit page
|
- Adds tier/package pricing fields to product edit page
|
||||||
@@ -119,11 +124,13 @@ wc-tier-and-package-prices/
|
|||||||
- Prevents autosave from corrupting data
|
- Prevents autosave from corrupting data
|
||||||
|
|
||||||
**Product Meta Keys:**
|
**Product Meta Keys:**
|
||||||
|
|
||||||
- `_wc_tpp_tiers` - Array of tier objects `[{min_qty, price, label}]`
|
- `_wc_tpp_tiers` - Array of tier objects `[{min_qty, price, label}]`
|
||||||
- `_wc_tpp_packages` - Array of package objects `[{qty, price, label}]`
|
- `_wc_tpp_packages` - Array of package objects `[{qty, price, label}]`
|
||||||
- `_wc_tpp_restrict_to_packages` - Per-product quantity restriction (yes/no)
|
- `_wc_tpp_restrict_to_packages` - Per-product quantity restriction (yes/no)
|
||||||
|
|
||||||
#### 5. `WC_TPP_Frontend`
|
#### 5. `WC_TPP_Frontend`
|
||||||
|
|
||||||
- **Location:** `includes/class-wc-tpp-frontend.php`
|
- **Location:** `includes/class-wc-tpp-frontend.php`
|
||||||
- **Responsibilities:**
|
- **Responsibilities:**
|
||||||
- Enqueues frontend CSS/JS on product pages
|
- Enqueues frontend CSS/JS on product pages
|
||||||
@@ -134,6 +141,7 @@ wc-tier-and-package-prices/
|
|||||||
- Static methods for price lookups (`get_tier_price()`, `get_package_price()`)
|
- Static methods for price lookups (`get_tier_price()`, `get_package_price()`)
|
||||||
|
|
||||||
#### 6. `WC_TPP_Cart`
|
#### 6. `WC_TPP_Cart`
|
||||||
|
|
||||||
- **Location:** `includes/class-wc-tpp-cart.php`
|
- **Location:** `includes/class-wc-tpp-cart.php`
|
||||||
- **Responsibilities:**
|
- **Responsibilities:**
|
||||||
- **MOST CRITICAL CLASS** - Handles all cart price calculations
|
- **MOST CRITICAL CLASS** - Handles all cart price calculations
|
||||||
@@ -145,11 +153,13 @@ wc-tier-and-package-prices/
|
|||||||
- **WooCommerce Blocks support** via `woocommerce_store_api_product_quantity_editable` filter
|
- **WooCommerce Blocks support** via `woocommerce_store_api_product_quantity_editable` filter
|
||||||
|
|
||||||
**Price Calculation Priority (in `apply_tier_package_pricing()`):**
|
**Price Calculation Priority (in `apply_tier_package_pricing()`):**
|
||||||
|
|
||||||
1. Check for exact package match → Use package price if found
|
1. Check for exact package match → Use package price if found
|
||||||
2. Check for tier match → Use tier price if found
|
2. Check for tier match → Use tier price if found
|
||||||
3. Fall back to regular product price
|
3. Fall back to regular product price
|
||||||
|
|
||||||
#### 7. `WC_TPP_Template_Loader`
|
#### 7. `WC_TPP_Template_Loader`
|
||||||
|
|
||||||
- **Location:** `includes/class-wc-tpp-template-loader.php`
|
- **Location:** `includes/class-wc-tpp-template-loader.php`
|
||||||
- **Pattern:** Singleton
|
- **Pattern:** Singleton
|
||||||
- **Responsibilities:**
|
- **Responsibilities:**
|
||||||
@@ -196,6 +206,7 @@ Products can be configured to ONLY allow purchase in package quantities:
|
|||||||
### WooCommerce Blocks Compatibility
|
### WooCommerce Blocks Compatibility
|
||||||
|
|
||||||
**CRITICAL BUG FIXED in v1.1.20:**
|
**CRITICAL BUG FIXED in v1.1.20:**
|
||||||
|
|
||||||
- Filter `woocommerce_store_api_product_quantity_editable` passes `WC_Product` object, NOT cart item array
|
- Filter `woocommerce_store_api_product_quantity_editable` passes `WC_Product` object, NOT cart item array
|
||||||
- Previous code tried to use product object as array → fatal error
|
- Previous code tried to use product object as array → fatal error
|
||||||
- Fixed by accepting product object and using `$product->get_id()`
|
- Fixed by accepting product object and using `$product->get_id()`
|
||||||
@@ -228,6 +239,7 @@ new WC_TPP_Frontend(); // Auto-instantiate
|
|||||||
**Exception:** Admin and Settings classes use singleton pattern to prevent duplicates.
|
**Exception:** Admin and Settings classes use singleton pattern to prevent duplicates.
|
||||||
|
|
||||||
### Security Best Practices
|
### Security Best Practices
|
||||||
|
|
||||||
- All user inputs are sanitized (integers for quantities/prices)
|
- All user inputs are sanitized (integers for quantities/prices)
|
||||||
- Nonce verification on form submissions
|
- Nonce verification on form submissions
|
||||||
- Capability checks (`edit_products`) before saving
|
- Capability checks (`edit_products`) before saving
|
||||||
@@ -243,16 +255,30 @@ _e('Text to translate', 'wc-tier-package-prices')
|
|||||||
|
|
||||||
Text domain: `wc-tier-package-prices`
|
Text domain: `wc-tier-package-prices`
|
||||||
|
|
||||||
|
**Available Translations (as of v1.1.21):**
|
||||||
|
|
||||||
|
- `en_US` - English (United States)
|
||||||
|
- `de_DE` - German (Germany, formal)
|
||||||
|
- `de_DE_informal` - German (Germany, informal "du")
|
||||||
|
- `de_CH` - German (Switzerland, formal "Sie")
|
||||||
|
- `de_CH_informal` - German (Switzerland, informal "du")
|
||||||
|
- `fr_CH` - French (Switzerland)
|
||||||
|
- `it_CH` - Italian (Switzerland)
|
||||||
|
|
||||||
|
Note: Swiss locales use CHF currency formatting in examples (e.g., "CHF 50.-")
|
||||||
|
|
||||||
## Known Issues & Historical Context
|
## Known Issues & Historical Context
|
||||||
|
|
||||||
### Settings Page Duplication Saga (v1.1.15-1.1.19)
|
### Settings Page Duplication Saga (v1.1.15-1.1.19)
|
||||||
Multiple versions attempted to fix settings page appearing twice:
|
Multiple versions attempted to fix settings page appearing twice:
|
||||||
|
|
||||||
- **Root cause:** Settings file auto-instantiation + Composer autoloader
|
- **Root cause:** Settings file auto-instantiation + Composer autoloader
|
||||||
- **Solution:** Removed auto-instantiation from settings file, explicit instantiation in admin class
|
- **Solution:** Removed auto-instantiation from settings file, explicit instantiation in admin class
|
||||||
- **Prevention:** Singleton pattern + duplicate detection in array
|
- **Prevention:** Singleton pattern + duplicate detection in array
|
||||||
|
|
||||||
### Class Redeclaration Issues (v1.1.8-1.1.14)
|
### Class Redeclaration Issues (v1.1.8-1.1.14)
|
||||||
Plugin was completely non-functional:
|
Plugin was completely non-functional:
|
||||||
|
|
||||||
- **Cause:** Incorrect initialization pattern without `class_exists()` guards
|
- **Cause:** Incorrect initialization pattern without `class_exists()` guards
|
||||||
- **Solution:** Added guards and restored direct instantiation pattern
|
- **Solution:** Added guards and restored direct instantiation pattern
|
||||||
- **Lesson:** Always wrap class declarations in `class_exists()` checks
|
- **Lesson:** Always wrap class declarations in `class_exists()` checks
|
||||||
@@ -262,6 +288,7 @@ Plugin was completely non-functional:
|
|||||||
Fatal error: Cannot use object of type WC_Product_Simple as array
|
Fatal error: Cannot use object of type WC_Product_Simple as array
|
||||||
Location: includes/class-wc-tpp-cart.php:233
|
Location: includes/class-wc-tpp-cart.php:233
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Cause:** Filter signature mismatch - expected array, received product object
|
- **Cause:** Filter signature mismatch - expected array, received product object
|
||||||
- **Fix:** Changed method signature to accept `WC_Product $product` instead of `$cart_item` array
|
- **Fix:** Changed method signature to accept `WC_Product $product` instead of `$cart_item` array
|
||||||
- **Status:** FIXED in v1.1.20
|
- **Status:** FIXED in v1.1.20
|
||||||
@@ -270,6 +297,7 @@ Location: includes/class-wc-tpp-cart.php:233
|
|||||||
|
|
||||||
### Version Bumping
|
### Version Bumping
|
||||||
Update version in 3 places:
|
Update version in 3 places:
|
||||||
|
|
||||||
1. `wc-tier-and-package-prices.php` - Plugin header comment (line 7)
|
1. `wc-tier-and-package-prices.php` - Plugin header comment (line 7)
|
||||||
2. `wc-tier-and-package-prices.php` - `WC_TPP_VERSION` constant (line 26)
|
2. `wc-tier-and-package-prices.php` - `WC_TPP_VERSION` constant (line 26)
|
||||||
3. `composer.json` - version field (optional, not critical)
|
3. `composer.json` - version field (optional, not critical)
|
||||||
@@ -281,7 +309,7 @@ cd releases
|
|||||||
|
|
||||||
# Create zip excluding dev files
|
# Create zip excluding dev files
|
||||||
zip -r wc-tier-and-package-prices-X.X.X.zip .. \
|
zip -r wc-tier-and-package-prices-X.X.X.zip .. \
|
||||||
-x '*.git*' '*.log' '.claude/*' 'releases/*' 'node_modules/*' \
|
-x '*.git*' '*.log' '.claude/*' 'CLAUDE.md' 'releases/*' 'node_modules/*' \
|
||||||
'.DS_Store' 'Thumbs.db' '.vscode/*' '.idea/*' '*.sublime-*' \
|
'.DS_Store' 'Thumbs.db' '.vscode/*' '.idea/*' '*.sublime-*' \
|
||||||
'notes.*' 'logs/*' 'templates/cache/*' 'composer.lock'
|
'notes.*' 'logs/*' 'templates/cache/*' 'composer.lock'
|
||||||
|
|
||||||
@@ -293,6 +321,7 @@ sha256sum wc-tier-and-package-prices-X.X.X.zip > wc-tier-and-package-prices-X.X.
|
|||||||
**IMPORTANT:** The `vendor/` directory MUST be included in releases (Twig dependency required for runtime).
|
**IMPORTANT:** The `vendor/` directory MUST be included in releases (Twig dependency required for runtime).
|
||||||
|
|
||||||
### What Gets Released
|
### What Gets Released
|
||||||
|
|
||||||
- All plugin source files
|
- All plugin source files
|
||||||
- Compiled vendor dependencies
|
- Compiled vendor dependencies
|
||||||
- Translation files (.mo compiled from .po)
|
- Translation files (.mo compiled from .po)
|
||||||
@@ -300,6 +329,7 @@ sha256sum wc-tier-and-package-prices-X.X.X.zip > wc-tier-and-package-prices-X.X.
|
|||||||
- Documentation (README, CHANGELOG, etc.)
|
- Documentation (README, CHANGELOG, etc.)
|
||||||
|
|
||||||
### What's Excluded
|
### What's Excluded
|
||||||
|
|
||||||
- Git metadata (`.git/`)
|
- Git metadata (`.git/`)
|
||||||
- Development files (`.vscode/`, `.claude/`, `CLAUDE.md`)
|
- Development files (`.vscode/`, `.claude/`, `CLAUDE.md`)
|
||||||
- Logs and cache files
|
- Logs and cache files
|
||||||
@@ -311,6 +341,7 @@ sha256sum wc-tier-and-package-prices-X.X.X.zip > wc-tier-and-package-prices-X.X.
|
|||||||
When making changes, test these critical paths:
|
When making changes, test these critical paths:
|
||||||
|
|
||||||
### Admin
|
### Admin
|
||||||
|
|
||||||
- [ ] Settings page appears once under WooCommerce > Tier & Package Prices
|
- [ ] Settings page appears once under WooCommerce > Tier & Package Prices
|
||||||
- [ ] Settings save correctly
|
- [ ] Settings save correctly
|
||||||
- [ ] Product edit page shows tier/package meta boxes
|
- [ ] Product edit page shows tier/package meta boxes
|
||||||
@@ -319,6 +350,7 @@ When making changes, test these critical paths:
|
|||||||
- [ ] Data saves when clicking "Update" on product
|
- [ ] Data saves when clicking "Update" on product
|
||||||
|
|
||||||
### Frontend (Product Page)
|
### Frontend (Product Page)
|
||||||
|
|
||||||
- [ ] Pricing tables display when configured
|
- [ ] Pricing tables display when configured
|
||||||
- [ ] Package buttons update quantity selector
|
- [ ] Package buttons update quantity selector
|
||||||
- [ ] Price updates dynamically when quantity changes
|
- [ ] Price updates dynamically when quantity changes
|
||||||
@@ -326,6 +358,7 @@ When making changes, test these critical paths:
|
|||||||
- [ ] "View Options" appears on catalog for restricted products
|
- [ ] "View Options" appears on catalog for restricted products
|
||||||
|
|
||||||
### Cart & Checkout
|
### Cart & Checkout
|
||||||
|
|
||||||
- [ ] Correct prices applied for tier pricing
|
- [ ] Correct prices applied for tier pricing
|
||||||
- [ ] Correct prices applied for package pricing
|
- [ ] Correct prices applied for package pricing
|
||||||
- [ ] Cart displays pricing type labels
|
- [ ] Cart displays pricing type labels
|
||||||
@@ -334,6 +367,7 @@ When making changes, test these critical paths:
|
|||||||
- [ ] Checkout totals are correct
|
- [ ] Checkout totals are correct
|
||||||
|
|
||||||
### WooCommerce Blocks (Critical!)
|
### WooCommerce Blocks (Critical!)
|
||||||
|
|
||||||
- [ ] Mini cart block doesn't throw fatal errors
|
- [ ] Mini cart block doesn't throw fatal errors
|
||||||
- [ ] Cart block works correctly
|
- [ ] Cart block works correctly
|
||||||
- [ ] Checkout block processes orders
|
- [ ] Checkout block processes orders
|
||||||
@@ -341,19 +375,35 @@ When making changes, test these critical paths:
|
|||||||
|
|
||||||
## Development Tips for Future AI Assistants
|
## Development Tips for Future AI Assistants
|
||||||
|
|
||||||
|
### Future Features and Roadmap
|
||||||
|
|
||||||
|
The is a hierarchical list for upcoming features and can be considered as a
|
||||||
|
Roadmap for the upcoming development.
|
||||||
|
|
||||||
|
#### Version 1.1.x
|
||||||
|
|
||||||
|
1. ~~Add translations for `de_CH`, `de_DE_informal`, `fr_CH`, `it_CH`~~ ✅ **COMPLETED in v1.1.21**
|
||||||
|
|
||||||
|
#### Version 1.2.x
|
||||||
|
|
||||||
|
1. New Feature: Create different, selectable templates for tierprices and packages to use in the frontend. Make the new templates selectable globally on the settings-page, not per product.
|
||||||
|
|
||||||
### When Debugging Cart Issues
|
### When Debugging Cart Issues
|
||||||
|
|
||||||
1. Check `includes/class-wc-tpp-cart.php` first
|
1. Check `includes/class-wc-tpp-cart.php` first
|
||||||
2. The `apply_tier_package_pricing()` method runs on `woocommerce_before_calculate_totals`
|
2. The `apply_tier_package_pricing()` method runs on `woocommerce_before_calculate_totals`
|
||||||
3. Always validate product objects with `is_a($product, 'WC_Product')`
|
3. Always validate product objects with `is_a($product, 'WC_Product')`
|
||||||
4. Remember: WooCommerce expects UNIT prices, not total prices (except for internal calculations)
|
4. Remember: WooCommerce expects UNIT prices, not total prices (except for internal calculations)
|
||||||
|
|
||||||
### When Working with WooCommerce Hooks
|
### When Working with WooCommerce Hooks
|
||||||
|
|
||||||
- WooCommerce has both classic and block-based systems
|
- WooCommerce has both classic and block-based systems
|
||||||
- Classic cart uses different hooks than Store API (blocks)
|
- Classic cart uses different hooks than Store API (blocks)
|
||||||
- Always check filter/action documentation for parameter types
|
- Always check filter/action documentation for parameter types
|
||||||
- Don't assume cart item arrays everywhere - sometimes it's product objects!
|
- Don't assume cart item arrays everywhere - sometimes it's product objects!
|
||||||
|
|
||||||
### When Adding Features
|
### When Adding Features
|
||||||
|
|
||||||
- Follow the existing pattern: add setting → add UI → add logic → add template
|
- Follow the existing pattern: add setting → add UI → add logic → add template
|
||||||
- Use Twig for all new templates (consistency)
|
- Use Twig for all new templates (consistency)
|
||||||
- Add translations for all user-facing strings
|
- Add translations for all user-facing strings
|
||||||
@@ -361,6 +411,7 @@ When making changes, test these critical paths:
|
|||||||
- Consider both classic and block-based cart/checkout
|
- Consider both classic and block-based cart/checkout
|
||||||
|
|
||||||
### When Fixing Bugs
|
### When Fixing Bugs
|
||||||
|
|
||||||
1. Check `CHANGELOG.md` for historical context
|
1. Check `CHANGELOG.md` for historical context
|
||||||
2. Look for similar issues in past versions
|
2. Look for similar issues in past versions
|
||||||
3. Always add detailed changelog entry explaining root cause
|
3. Always add detailed changelog entry explaining root cause
|
||||||
@@ -383,22 +434,26 @@ When making changes, test these critical paths:
|
|||||||
## Compatibility Notes
|
## Compatibility Notes
|
||||||
|
|
||||||
### WordPress
|
### WordPress
|
||||||
|
|
||||||
- Minimum: 6.0
|
- Minimum: 6.0
|
||||||
- Tested up to: 6.9.x
|
- Tested up to: 6.9.x
|
||||||
- Uses standard plugin API, no deprecated functions
|
- Uses standard plugin API, no deprecated functions
|
||||||
|
|
||||||
### WooCommerce
|
### WooCommerce
|
||||||
|
|
||||||
- Minimum: 8.0
|
- Minimum: 8.0
|
||||||
- Tested up to: 10.x
|
- Tested up to: 10.x
|
||||||
- HPOS compatible (declared via `FeaturesUtil::declare_compatibility`)
|
- HPOS compatible (declared via `FeaturesUtil::declare_compatibility`)
|
||||||
- Blocks compatible (with proper filter handling)
|
- Blocks compatible (with proper filter handling)
|
||||||
|
|
||||||
### PHP
|
### PHP
|
||||||
|
|
||||||
- Minimum: 7.4
|
- Minimum: 7.4
|
||||||
- Uses modern PHP features (type hints acceptable in new code)
|
- Uses modern PHP features (type hints acceptable in new code)
|
||||||
- Composer autoloader handles namespacing
|
- Composer autoloader handles namespacing
|
||||||
|
|
||||||
### Browsers
|
### Browsers
|
||||||
|
|
||||||
- Modern browsers (ES6+ JavaScript)
|
- Modern browsers (ES6+ JavaScript)
|
||||||
- Responsive CSS (mobile-friendly)
|
- Responsive CSS (mobile-friendly)
|
||||||
- jQuery dependency (WooCommerce provides)
|
- jQuery dependency (WooCommerce provides)
|
||||||
@@ -413,6 +468,7 @@ When making changes, test these critical paths:
|
|||||||
## Final Notes
|
## Final Notes
|
||||||
|
|
||||||
This is a production-quality plugin with real-world usage. Any changes should:
|
This is a production-quality plugin with real-world usage. Any changes should:
|
||||||
|
|
||||||
1. Maintain backward compatibility with existing tier/package configurations
|
1. Maintain backward compatibility with existing tier/package configurations
|
||||||
2. Not break WooCommerce core functionality
|
2. Not break WooCommerce core functionality
|
||||||
3. Work with both classic and block-based themes
|
3. Work with both classic and block-based themes
|
||||||
@@ -421,9 +477,12 @@ This is a production-quality plugin with real-world usage. Any changes should:
|
|||||||
6. Update CHANGELOG.md with detailed explanations
|
6. Update CHANGELOG.md with detailed explanations
|
||||||
|
|
||||||
The plugin architecture is solid and well-tested. Most bugs arise from:
|
The plugin architecture is solid and well-tested. Most bugs arise from:
|
||||||
|
|
||||||
- WooCommerce API changes (especially blocks)
|
- WooCommerce API changes (especially blocks)
|
||||||
- Filter/action signature changes
|
- Filter/action signature changes
|
||||||
- Edge cases in cart calculations
|
- Edge cases in cart calculations
|
||||||
- Settings persistence issues
|
- Settings persistence issues
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
Always refer to this document when starting work on this project. Good luck!
|
Always refer to this document when starting work on this project. Good luck!
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "magdev/wc-tier-package-prices",
|
"name": "magdev/wc-tier-package-prices",
|
||||||
"description": "WooCommerce plugin for tier pricing and package prices with Twig templates",
|
"description": "WooCommerce plugin for tier pricing and package prices with Twig templates",
|
||||||
"version": "1.1.19",
|
"version": "1.1.21",
|
||||||
"type": "wordpress-plugin",
|
"type": "wordpress-plugin",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"authors": [
|
"authors": [
|
||||||
|
|||||||
BIN
languages/wc-tier-package-prices-de_CH.mo
Normal file
BIN
languages/wc-tier-package-prices-de_CH.mo
Normal file
Binary file not shown.
245
languages/wc-tier-package-prices-de_CH.po
Normal file
245
languages/wc-tier-package-prices-de_CH.po
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
# German (Switzerland) translation for WooCommerce Tier and Package Prices
|
||||||
|
# Copyright (C) 2025 Marco Graetsch
|
||||||
|
# This file is distributed under the GPL v2 or later.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.21\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
|
"POT-Creation-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"PO-Revision-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"Last-Translator: Marco Graetsch\n"
|
||||||
|
"Language-Team: German (Switzerland)\n"
|
||||||
|
"Language: de_CH\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Poedit 3.0\n"
|
||||||
|
"X-Domain: wc-tier-package-prices\n"
|
||||||
|
|
||||||
|
#: wc-tier-and-package-prices.php:41
|
||||||
|
msgid "WooCommerce Tier and Package Prices requires WooCommerce to be installed and active."
|
||||||
|
msgstr "WooCommerce Staffel- und Paketpreise benötigt eine installierte und aktive WooCommerce-Installation."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:21
|
||||||
|
#: includes/class-wc-tpp-admin.php:22
|
||||||
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
|
msgid "Tier & Package Prices"
|
||||||
|
msgstr "Staffel- & Paketpreise"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:40
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Allgemein"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:58
|
||||||
|
msgid "Tier & Package Prices Settings"
|
||||||
|
msgstr "Staffel- & Paketpreise Einstellungen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:60
|
||||||
|
msgid "Configure tier pricing and package pricing options for your WooCommerce products."
|
||||||
|
msgstr "Konfigurieren Sie Staffelpreise und Paketpreise für Ihre WooCommerce-Produkte."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:54
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
|
msgid "Enable Tier Pricing"
|
||||||
|
msgstr "Staffelpreise aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:58
|
||||||
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
|
msgid "Enable tier pricing for products"
|
||||||
|
msgstr "Staffelpreise für Produkte aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:70
|
||||||
|
msgid "Allow quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Ermöglicht mengenbasierte Preisstaffeln. Kunden erhalten reduzierte Preise beim Kauf grösserer Mengen."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:63
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
|
msgid "Enable Package Pricing"
|
||||||
|
msgstr "Paketpreise aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:67
|
||||||
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
|
msgid "Enable fixed-price packages for products"
|
||||||
|
msgstr "Festpreis-Pakete für Produkte aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:79
|
||||||
|
msgid "Allow fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Ermöglicht Festpreis-Pakete mit bestimmten Mengen. Zum Beispiel: 10 Stück für CHF 50.-, 25 Stück für CHF 100.-."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:72
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
|
msgid "Display Pricing Table"
|
||||||
|
msgstr "Preistabelle anzeigen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:76
|
||||||
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
|
msgid "Show tier and package pricing table on product pages"
|
||||||
|
msgstr "Staffel- und Paketpreis-Tabelle auf Produktseiten anzeigen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:88
|
||||||
|
msgid "Display the pricing table to customers on product pages."
|
||||||
|
msgstr "Zeigt die Preistabelle den Kunden auf Produktseiten an."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:81
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
|
msgid "Display Position"
|
||||||
|
msgstr "Anzeigeposition"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:93
|
||||||
|
msgid "Choose where to display the pricing table on product pages."
|
||||||
|
msgstr "Wählen Sie, wo die Preistabelle auf Produktseiten angezeigt werden soll."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:101
|
||||||
|
msgid "Before Add to Cart Button"
|
||||||
|
msgstr "Vor \"In den Warenkorb\"-Button"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:102
|
||||||
|
msgid "After Add to Cart Button"
|
||||||
|
msgstr "Nach \"In den Warenkorb\"-Button"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:85
|
||||||
|
msgid "Before Add to Cart"
|
||||||
|
msgstr "Vor \"In den Warenkorb\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:86
|
||||||
|
msgid "After Add to Cart"
|
||||||
|
msgstr "Nach \"In den Warenkorb\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:87
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
|
msgid "After Price"
|
||||||
|
msgstr "Nach dem Preis"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:108
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:76
|
||||||
|
msgid "Restrict to Package Quantities"
|
||||||
|
msgstr "Auf Paketmengen beschränken"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:109
|
||||||
|
msgid "Limit quantities to defined package sizes only"
|
||||||
|
msgstr "Mengen nur auf definierte Paketgrössen beschränken"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:113
|
||||||
|
msgid "When enabled, customers can only purchase products in the exact quantities defined in packages. The quantity input field will be hidden and replaced with package selection buttons."
|
||||||
|
msgstr "Wenn aktiviert, können Kunden Produkte nur in den genau definierten Paketmengen kaufen. Das Mengeneingabefeld wird ausgeblendet und durch Paketauswahl-Buttons ersetzt."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
|
msgid "Tier Pricing"
|
||||||
|
msgstr "Staffelpreise"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:24
|
||||||
|
msgid "Set quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Mengenbasierte Preisstaffeln festlegen. Kunden erhalten Rabatte beim Kauf grösserer Mengen."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:41
|
||||||
|
msgid "Add Tier"
|
||||||
|
msgstr "Staffel hinzufügen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:52
|
||||||
|
msgid "Package Pricing"
|
||||||
|
msgstr "Paketpreise"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:53
|
||||||
|
msgid "Set fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Festpreis-Pakete mit bestimmten Mengen festlegen. Zum Beispiel: 10 Stück für CHF 50.-, 25 Stück für CHF 100.-."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:70
|
||||||
|
msgid "Add Package"
|
||||||
|
msgstr "Paket hinzufügen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:77
|
||||||
|
msgid "Only allow quantities defined in packages above"
|
||||||
|
msgstr "Nur oben definierte Paketmengen zulassen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:90
|
||||||
|
msgid "Minimum Quantity"
|
||||||
|
msgstr "Mindestmenge"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:91
|
||||||
|
msgid "e.g., 10"
|
||||||
|
msgstr "z.B. 10"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:95
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:114
|
||||||
|
msgid "e.g., 9.99"
|
||||||
|
msgstr "z.B. 9.90"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:97
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:120
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Entfernen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:109
|
||||||
|
#: includes/class-wc-tpp-frontend.php:75
|
||||||
|
msgid "Quantity"
|
||||||
|
msgstr "Menge"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:113
|
||||||
|
msgid "Fixed Price"
|
||||||
|
msgstr "Festpreis"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:117
|
||||||
|
msgid "Label (Optional)"
|
||||||
|
msgstr "Bezeichnung (Optional)"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:118
|
||||||
|
msgid "e.g., Starter Pack"
|
||||||
|
msgstr "z.B. Starter-Paket"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:71
|
||||||
|
msgid "Volume Discounts"
|
||||||
|
msgstr "Mengenrabatte"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:94
|
||||||
|
#: includes/class-wc-tpp-frontend.php:76
|
||||||
|
msgid "Price per Unit"
|
||||||
|
msgstr "Preis pro Einheit"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:77
|
||||||
|
msgid "You Save"
|
||||||
|
msgstr "Sie sparen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:110
|
||||||
|
msgid "Package Deals"
|
||||||
|
msgstr "Paketangebote"
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr "Wählen Sie unten eine Paketgrösse"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:123
|
||||||
|
msgid "pieces"
|
||||||
|
msgstr "Stück"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:129
|
||||||
|
msgid "per unit"
|
||||||
|
msgstr "pro Einheit"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:133
|
||||||
|
msgid "Select Package"
|
||||||
|
msgstr "Paket auswählen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:63
|
||||||
|
msgid "Package price"
|
||||||
|
msgstr "Paketpreis"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:66
|
||||||
|
msgid "Volume discount"
|
||||||
|
msgstr "Mengenrabatt"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:124
|
||||||
|
msgid "this product"
|
||||||
|
msgstr "dieses Produkt"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:128
|
||||||
|
msgid "The quantity %1$d is not available for %2$s. Please choose from the available package sizes: %3$s"
|
||||||
|
msgstr "Die Menge %1$d ist für %2$s nicht verfügbar. Bitte wählen Sie aus den verfügbaren Paketgrössen: %3$s"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:173
|
||||||
|
msgid "View Options"
|
||||||
|
msgstr "Optionen ansehen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:178
|
||||||
|
msgid "View options for %s"
|
||||||
|
msgstr "Optionen für %s ansehen"
|
||||||
BIN
languages/wc-tier-package-prices-de_DE_informal.mo
Normal file
BIN
languages/wc-tier-package-prices-de_DE_informal.mo
Normal file
Binary file not shown.
245
languages/wc-tier-package-prices-de_DE_informal.po
Normal file
245
languages/wc-tier-package-prices-de_DE_informal.po
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
# German (Germany, Informal) translation for WooCommerce Tier and Package Prices
|
||||||
|
# Copyright (C) 2025 Marco Graetsch
|
||||||
|
# This file is distributed under the GPL v2 or later.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.21\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
|
"POT-Creation-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"PO-Revision-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"Last-Translator: Marco Graetsch\n"
|
||||||
|
"Language-Team: German (Germany)\n"
|
||||||
|
"Language: de_DE_informal\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Poedit 3.0\n"
|
||||||
|
"X-Domain: wc-tier-package-prices\n"
|
||||||
|
|
||||||
|
#: wc-tier-and-package-prices.php:41
|
||||||
|
msgid "WooCommerce Tier and Package Prices requires WooCommerce to be installed and active."
|
||||||
|
msgstr "WooCommerce Staffel- und Paketpreise erfordert, dass WooCommerce installiert und aktiviert ist."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:21
|
||||||
|
#: includes/class-wc-tpp-admin.php:22
|
||||||
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
|
msgid "Tier & Package Prices"
|
||||||
|
msgstr "Staffel- & Paketpreise"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:40
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Allgemein"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:58
|
||||||
|
msgid "Tier & Package Prices Settings"
|
||||||
|
msgstr "Staffel- & Paketpreise Einstellungen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:60
|
||||||
|
msgid "Configure tier pricing and package pricing options for your WooCommerce products."
|
||||||
|
msgstr "Konfiguriere Staffelpreise und Paketpreise für deine WooCommerce-Produkte."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:54
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
|
msgid "Enable Tier Pricing"
|
||||||
|
msgstr "Staffelpreise aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:58
|
||||||
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
|
msgid "Enable tier pricing for products"
|
||||||
|
msgstr "Staffelpreise für Produkte aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:70
|
||||||
|
msgid "Allow quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Ermöglicht mengenbasierte Preisstaffeln. Kunden erhalten reduzierte Preise beim Kauf größerer Mengen."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:63
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
|
msgid "Enable Package Pricing"
|
||||||
|
msgstr "Paketpreise aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:67
|
||||||
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
|
msgid "Enable fixed-price packages for products"
|
||||||
|
msgstr "Festpreis-Pakete für Produkte aktivieren"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:79
|
||||||
|
msgid "Allow fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Ermöglicht Festpreis-Pakete mit bestimmten Mengen. Zum Beispiel: 10 Stück für 50€, 25 Stück für 100€."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:72
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
|
msgid "Display Pricing Table"
|
||||||
|
msgstr "Preistabelle anzeigen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:76
|
||||||
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
|
msgid "Show tier and package pricing table on product pages"
|
||||||
|
msgstr "Staffel- und Paketpreis-Tabelle auf Produktseiten anzeigen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:88
|
||||||
|
msgid "Display the pricing table to customers on product pages."
|
||||||
|
msgstr "Zeigt die Preistabelle den Kunden auf Produktseiten an."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:81
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
|
msgid "Display Position"
|
||||||
|
msgstr "Anzeigeposition"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:93
|
||||||
|
msgid "Choose where to display the pricing table on product pages."
|
||||||
|
msgstr "Wähle, wo die Preistabelle auf Produktseiten angezeigt werden soll."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:101
|
||||||
|
msgid "Before Add to Cart Button"
|
||||||
|
msgstr "Vor \"In den Warenkorb\"-Button"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:102
|
||||||
|
msgid "After Add to Cart Button"
|
||||||
|
msgstr "Nach \"In den Warenkorb\"-Button"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:85
|
||||||
|
msgid "Before Add to Cart"
|
||||||
|
msgstr "Vor \"In den Warenkorb\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:86
|
||||||
|
msgid "After Add to Cart"
|
||||||
|
msgstr "Nach \"In den Warenkorb\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:87
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
|
msgid "After Price"
|
||||||
|
msgstr "Nach dem Preis"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:108
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:76
|
||||||
|
msgid "Restrict to Package Quantities"
|
||||||
|
msgstr "Auf Paketmengen beschränken"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:109
|
||||||
|
msgid "Limit quantities to defined package sizes only"
|
||||||
|
msgstr "Mengen nur auf definierte Paketgrößen beschränken"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:113
|
||||||
|
msgid "When enabled, customers can only purchase products in the exact quantities defined in packages. The quantity input field will be hidden and replaced with package selection buttons."
|
||||||
|
msgstr "Wenn aktiviert, kannst du Produkte nur in den genau definierten Paketmengen kaufen. Das Mengeneingabefeld wird ausgeblendet und durch Paketauswahl-Buttons ersetzt."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
|
msgid "Tier Pricing"
|
||||||
|
msgstr "Staffelpreise"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:24
|
||||||
|
msgid "Set quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Mengenbasierte Preisstaffeln festlegen. Kunden erhalten Rabatte beim Kauf größerer Mengen."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:41
|
||||||
|
msgid "Add Tier"
|
||||||
|
msgstr "Staffel hinzufügen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:52
|
||||||
|
msgid "Package Pricing"
|
||||||
|
msgstr "Paketpreise"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:53
|
||||||
|
msgid "Set fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Festpreis-Pakete mit bestimmten Mengen festlegen. Zum Beispiel: 10 Stück für 50€, 25 Stück für 100€."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:70
|
||||||
|
msgid "Add Package"
|
||||||
|
msgstr "Paket hinzufügen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:77
|
||||||
|
msgid "Only allow quantities defined in packages above"
|
||||||
|
msgstr "Nur oben definierte Paketmengen zulassen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:90
|
||||||
|
msgid "Minimum Quantity"
|
||||||
|
msgstr "Mindestmenge"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:91
|
||||||
|
msgid "e.g., 10"
|
||||||
|
msgstr "z.B. 10"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:95
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:114
|
||||||
|
msgid "e.g., 9.99"
|
||||||
|
msgstr "z.B. 9,99"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:97
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:120
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Entfernen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:109
|
||||||
|
#: includes/class-wc-tpp-frontend.php:75
|
||||||
|
msgid "Quantity"
|
||||||
|
msgstr "Menge"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:113
|
||||||
|
msgid "Fixed Price"
|
||||||
|
msgstr "Festpreis"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:117
|
||||||
|
msgid "Label (Optional)"
|
||||||
|
msgstr "Bezeichnung (Optional)"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:118
|
||||||
|
msgid "e.g., Starter Pack"
|
||||||
|
msgstr "z.B. Starter-Paket"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:71
|
||||||
|
msgid "Volume Discounts"
|
||||||
|
msgstr "Mengenrabatte"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:94
|
||||||
|
#: includes/class-wc-tpp-frontend.php:76
|
||||||
|
msgid "Price per Unit"
|
||||||
|
msgstr "Preis pro Einheit"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:77
|
||||||
|
msgid "You Save"
|
||||||
|
msgstr "Du sparst"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:110
|
||||||
|
msgid "Package Deals"
|
||||||
|
msgstr "Paketangebote"
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr "Wähle unten eine Paketgröße"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:123
|
||||||
|
msgid "pieces"
|
||||||
|
msgstr "Stück"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:129
|
||||||
|
msgid "per unit"
|
||||||
|
msgstr "pro Einheit"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:133
|
||||||
|
msgid "Select Package"
|
||||||
|
msgstr "Paket auswählen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:63
|
||||||
|
msgid "Package price"
|
||||||
|
msgstr "Paketpreis"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:66
|
||||||
|
msgid "Volume discount"
|
||||||
|
msgstr "Mengenrabatt"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:124
|
||||||
|
msgid "this product"
|
||||||
|
msgstr "dieses Produkt"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:128
|
||||||
|
msgid "The quantity %1$d is not available for %2$s. Please choose from the available package sizes: %3$s"
|
||||||
|
msgstr "Die Menge %1$d ist für %2$s nicht verfügbar. Bitte wähle aus den verfügbaren Paketgrößen: %3$s"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:173
|
||||||
|
msgid "View Options"
|
||||||
|
msgstr "Optionen ansehen"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:178
|
||||||
|
msgid "View options for %s"
|
||||||
|
msgstr "Optionen für %s ansehen"
|
||||||
BIN
languages/wc-tier-package-prices-fr_CH.mo
Normal file
BIN
languages/wc-tier-package-prices-fr_CH.mo
Normal file
Binary file not shown.
245
languages/wc-tier-package-prices-fr_CH.po
Normal file
245
languages/wc-tier-package-prices-fr_CH.po
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
# French (Switzerland) translation for WooCommerce Tier and Package Prices
|
||||||
|
# Copyright (C) 2025 Marco Graetsch
|
||||||
|
# This file is distributed under the GPL v2 or later.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.21\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
|
"POT-Creation-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"PO-Revision-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"Last-Translator: Marco Graetsch\n"
|
||||||
|
"Language-Team: French (Switzerland)\n"
|
||||||
|
"Language: fr_CH\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
"X-Generator: Poedit 3.0\n"
|
||||||
|
"X-Domain: wc-tier-package-prices\n"
|
||||||
|
|
||||||
|
#: wc-tier-and-package-prices.php:41
|
||||||
|
msgid "WooCommerce Tier and Package Prices requires WooCommerce to be installed and active."
|
||||||
|
msgstr "WooCommerce Prix Échelonnés et Forfaitaires nécessite que WooCommerce soit installé et actif."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:21
|
||||||
|
#: includes/class-wc-tpp-admin.php:22
|
||||||
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
|
msgid "Tier & Package Prices"
|
||||||
|
msgstr "Prix Échelonnés & Forfaitaires"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:40
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Général"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:58
|
||||||
|
msgid "Tier & Package Prices Settings"
|
||||||
|
msgstr "Paramètres Prix Échelonnés & Forfaitaires"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:60
|
||||||
|
msgid "Configure tier pricing and package pricing options for your WooCommerce products."
|
||||||
|
msgstr "Configurez les options de prix échelonnés et forfaitaires pour vos produits WooCommerce."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:54
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
|
msgid "Enable Tier Pricing"
|
||||||
|
msgstr "Activer les prix échelonnés"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:58
|
||||||
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
|
msgid "Enable tier pricing for products"
|
||||||
|
msgstr "Activer les prix échelonnés pour les produits"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:70
|
||||||
|
msgid "Allow quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Permet des paliers de prix basés sur la quantité. Les clients bénéficient de prix réduits lors de l'achat de quantités plus importantes."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:63
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
|
msgid "Enable Package Pricing"
|
||||||
|
msgstr "Activer les prix forfaitaires"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:67
|
||||||
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
|
msgid "Enable fixed-price packages for products"
|
||||||
|
msgstr "Activer les forfaits à prix fixe pour les produits"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:79
|
||||||
|
msgid "Allow fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Permet des forfaits à prix fixe avec des quantités spécifiques. Par exemple: 10 pièces pour CHF 50.-, 25 pièces pour CHF 100.-."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:72
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
|
msgid "Display Pricing Table"
|
||||||
|
msgstr "Afficher le tableau des prix"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:76
|
||||||
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
|
msgid "Show tier and package pricing table on product pages"
|
||||||
|
msgstr "Afficher le tableau des prix échelonnés et forfaitaires sur les pages produits"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:88
|
||||||
|
msgid "Display the pricing table to customers on product pages."
|
||||||
|
msgstr "Affiche le tableau des prix aux clients sur les pages produits."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:81
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
|
msgid "Display Position"
|
||||||
|
msgstr "Position d'affichage"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:93
|
||||||
|
msgid "Choose where to display the pricing table on product pages."
|
||||||
|
msgstr "Choisissez où afficher le tableau des prix sur les pages produits."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:101
|
||||||
|
msgid "Before Add to Cart Button"
|
||||||
|
msgstr "Avant le bouton \"Ajouter au panier\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:102
|
||||||
|
msgid "After Add to Cart Button"
|
||||||
|
msgstr "Après le bouton \"Ajouter au panier\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:85
|
||||||
|
msgid "Before Add to Cart"
|
||||||
|
msgstr "Avant \"Ajouter au panier\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:86
|
||||||
|
msgid "After Add to Cart"
|
||||||
|
msgstr "Après \"Ajouter au panier\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:87
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
|
msgid "After Price"
|
||||||
|
msgstr "Après le prix"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:108
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:76
|
||||||
|
msgid "Restrict to Package Quantities"
|
||||||
|
msgstr "Restreindre aux quantités forfaitaires"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:109
|
||||||
|
msgid "Limit quantities to defined package sizes only"
|
||||||
|
msgstr "Limiter les quantités aux tailles de forfaits définies uniquement"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:113
|
||||||
|
msgid "When enabled, customers can only purchase products in the exact quantities defined in packages. The quantity input field will be hidden and replaced with package selection buttons."
|
||||||
|
msgstr "Lorsque cette option est activée, les clients ne peuvent acheter les produits que dans les quantités exactes définies dans les forfaits. Le champ de saisie de quantité sera masqué et remplacé par des boutons de sélection de forfait."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
|
msgid "Tier Pricing"
|
||||||
|
msgstr "Prix échelonnés"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:24
|
||||||
|
msgid "Set quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Définir des paliers de prix basés sur la quantité. Les clients bénéficient de réductions lors de l'achat de quantités plus importantes."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:41
|
||||||
|
msgid "Add Tier"
|
||||||
|
msgstr "Ajouter un palier"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:52
|
||||||
|
msgid "Package Pricing"
|
||||||
|
msgstr "Prix forfaitaires"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:53
|
||||||
|
msgid "Set fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Définir des forfaits à prix fixe avec des quantités spécifiques. Par exemple: 10 pièces pour CHF 50.-, 25 pièces pour CHF 100.-."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:70
|
||||||
|
msgid "Add Package"
|
||||||
|
msgstr "Ajouter un forfait"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:77
|
||||||
|
msgid "Only allow quantities defined in packages above"
|
||||||
|
msgstr "Autoriser uniquement les quantités définies dans les forfaits ci-dessus"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:90
|
||||||
|
msgid "Minimum Quantity"
|
||||||
|
msgstr "Quantité minimale"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:91
|
||||||
|
msgid "e.g., 10"
|
||||||
|
msgstr "p.ex. 10"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:95
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:114
|
||||||
|
msgid "e.g., 9.99"
|
||||||
|
msgstr "p.ex. 9.90"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:97
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:120
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Supprimer"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:109
|
||||||
|
#: includes/class-wc-tpp-frontend.php:75
|
||||||
|
msgid "Quantity"
|
||||||
|
msgstr "Quantité"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:113
|
||||||
|
msgid "Fixed Price"
|
||||||
|
msgstr "Prix fixe"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:117
|
||||||
|
msgid "Label (Optional)"
|
||||||
|
msgstr "Étiquette (Optionnel)"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:118
|
||||||
|
msgid "e.g., Starter Pack"
|
||||||
|
msgstr "p.ex. Pack de démarrage"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:71
|
||||||
|
msgid "Volume Discounts"
|
||||||
|
msgstr "Remises sur quantité"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:94
|
||||||
|
#: includes/class-wc-tpp-frontend.php:76
|
||||||
|
msgid "Price per Unit"
|
||||||
|
msgstr "Prix par unité"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:77
|
||||||
|
msgid "You Save"
|
||||||
|
msgstr "Vous économisez"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:110
|
||||||
|
msgid "Package Deals"
|
||||||
|
msgstr "Offres forfaitaires"
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr "Choisissez une taille de forfait ci-dessous"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:123
|
||||||
|
msgid "pieces"
|
||||||
|
msgstr "pièces"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:129
|
||||||
|
msgid "per unit"
|
||||||
|
msgstr "par unité"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:133
|
||||||
|
msgid "Select Package"
|
||||||
|
msgstr "Sélectionner le forfait"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:63
|
||||||
|
msgid "Package price"
|
||||||
|
msgstr "Prix forfaitaire"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:66
|
||||||
|
msgid "Volume discount"
|
||||||
|
msgstr "Remise sur quantité"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:124
|
||||||
|
msgid "this product"
|
||||||
|
msgstr "ce produit"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:128
|
||||||
|
msgid "The quantity %1$d is not available for %2$s. Please choose from the available package sizes: %3$s"
|
||||||
|
msgstr "La quantité %1$d n'est pas disponible pour %2$s. Veuillez choisir parmi les tailles de forfait disponibles: %3$s"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:173
|
||||||
|
msgid "View Options"
|
||||||
|
msgstr "Voir les options"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:178
|
||||||
|
msgid "View options for %s"
|
||||||
|
msgstr "Voir les options pour %s"
|
||||||
BIN
languages/wc-tier-package-prices-it_CH.mo
Normal file
BIN
languages/wc-tier-package-prices-it_CH.mo
Normal file
Binary file not shown.
245
languages/wc-tier-package-prices-it_CH.po
Normal file
245
languages/wc-tier-package-prices-it_CH.po
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
# Italian (Switzerland) translation for WooCommerce Tier and Package Prices
|
||||||
|
# Copyright (C) 2025 Marco Graetsch
|
||||||
|
# This file is distributed under the GPL v2 or later.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.21\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
|
"POT-Creation-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"PO-Revision-Date: 2025-12-23 00:00+0000\n"
|
||||||
|
"Last-Translator: Marco Graetsch\n"
|
||||||
|
"Language-Team: Italian (Switzerland)\n"
|
||||||
|
"Language: it_CH\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Poedit 3.0\n"
|
||||||
|
"X-Domain: wc-tier-package-prices\n"
|
||||||
|
|
||||||
|
#: wc-tier-and-package-prices.php:41
|
||||||
|
msgid "WooCommerce Tier and Package Prices requires WooCommerce to be installed and active."
|
||||||
|
msgstr "WooCommerce Prezzi Scaglionati e Pacchetti richiede che WooCommerce sia installato e attivo."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:21
|
||||||
|
#: includes/class-wc-tpp-admin.php:22
|
||||||
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
|
msgid "Tier & Package Prices"
|
||||||
|
msgstr "Prezzi Scaglionati & Pacchetti"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:40
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Generale"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:58
|
||||||
|
msgid "Tier & Package Prices Settings"
|
||||||
|
msgstr "Impostazioni Prezzi Scaglionati & Pacchetti"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:60
|
||||||
|
msgid "Configure tier pricing and package pricing options for your WooCommerce products."
|
||||||
|
msgstr "Configura le opzioni di prezzi scaglionati e pacchetti per i tuoi prodotti WooCommerce."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:54
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
|
msgid "Enable Tier Pricing"
|
||||||
|
msgstr "Attiva prezzi scaglionati"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:58
|
||||||
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
|
msgid "Enable tier pricing for products"
|
||||||
|
msgstr "Attiva prezzi scaglionati per i prodotti"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:70
|
||||||
|
msgid "Allow quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Permette scaglioni di prezzo basati sulla quantità. I clienti ottengono prezzi scontati quando acquistano quantità maggiori."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:63
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
|
msgid "Enable Package Pricing"
|
||||||
|
msgstr "Attiva prezzi pacchetto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:67
|
||||||
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
|
msgid "Enable fixed-price packages for products"
|
||||||
|
msgstr "Attiva pacchetti a prezzo fisso per i prodotti"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:79
|
||||||
|
msgid "Allow fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Permette pacchetti a prezzo fisso con quantità specifiche. Ad esempio: 10 pezzi per CHF 50.-, 25 pezzi per CHF 100.-."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:72
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
|
msgid "Display Pricing Table"
|
||||||
|
msgstr "Visualizza tabella prezzi"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:76
|
||||||
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
|
msgid "Show tier and package pricing table on product pages"
|
||||||
|
msgstr "Mostra la tabella dei prezzi scaglionati e pacchetti nelle pagine prodotto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:88
|
||||||
|
msgid "Display the pricing table to customers on product pages."
|
||||||
|
msgstr "Visualizza la tabella prezzi ai clienti nelle pagine prodotto."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:81
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
|
msgid "Display Position"
|
||||||
|
msgstr "Posizione visualizzazione"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:93
|
||||||
|
msgid "Choose where to display the pricing table on product pages."
|
||||||
|
msgstr "Scegli dove visualizzare la tabella prezzi nelle pagine prodotto."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:101
|
||||||
|
msgid "Before Add to Cart Button"
|
||||||
|
msgstr "Prima del pulsante \"Aggiungi al carrello\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:102
|
||||||
|
msgid "After Add to Cart Button"
|
||||||
|
msgstr "Dopo il pulsante \"Aggiungi al carrello\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:85
|
||||||
|
msgid "Before Add to Cart"
|
||||||
|
msgstr "Prima di \"Aggiungi al carrello\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:86
|
||||||
|
msgid "After Add to Cart"
|
||||||
|
msgstr "Dopo \"Aggiungi al carrello\""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-admin.php:87
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
|
msgid "After Price"
|
||||||
|
msgstr "Dopo il prezzo"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:108
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:76
|
||||||
|
msgid "Restrict to Package Quantities"
|
||||||
|
msgstr "Limita alle quantità pacchetto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:109
|
||||||
|
msgid "Limit quantities to defined package sizes only"
|
||||||
|
msgstr "Limita le quantità solo alle dimensioni pacchetto definite"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:113
|
||||||
|
msgid "When enabled, customers can only purchase products in the exact quantities defined in packages. The quantity input field will be hidden and replaced with package selection buttons."
|
||||||
|
msgstr "Quando attivato, i clienti possono acquistare prodotti solo nelle quantità esatte definite nei pacchetti. Il campo di inserimento quantità verrà nascosto e sostituito con pulsanti di selezione pacchetto."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
|
msgid "Tier Pricing"
|
||||||
|
msgstr "Prezzi scaglionati"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:24
|
||||||
|
msgid "Set quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Imposta scaglioni di prezzo basati sulla quantità. I clienti ottengono sconti quando acquistano quantità maggiori."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:41
|
||||||
|
msgid "Add Tier"
|
||||||
|
msgstr "Aggiungi scaglione"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:52
|
||||||
|
msgid "Package Pricing"
|
||||||
|
msgstr "Prezzi pacchetto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:53
|
||||||
|
msgid "Set fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
msgstr "Imposta pacchetti a prezzo fisso con quantità specifiche. Ad esempio: 10 pezzi per CHF 50.-, 25 pezzi per CHF 100.-."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:70
|
||||||
|
msgid "Add Package"
|
||||||
|
msgstr "Aggiungi pacchetto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:77
|
||||||
|
msgid "Only allow quantities defined in packages above"
|
||||||
|
msgstr "Consenti solo le quantità definite nei pacchetti sopra"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:90
|
||||||
|
msgid "Minimum Quantity"
|
||||||
|
msgstr "Quantità minima"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:91
|
||||||
|
msgid "e.g., 10"
|
||||||
|
msgstr "es. 10"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:95
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:114
|
||||||
|
msgid "e.g., 9.99"
|
||||||
|
msgstr "es. 9.90"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:97
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:120
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Rimuovi"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:109
|
||||||
|
#: includes/class-wc-tpp-frontend.php:75
|
||||||
|
msgid "Quantity"
|
||||||
|
msgstr "Quantità"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:113
|
||||||
|
msgid "Fixed Price"
|
||||||
|
msgstr "Prezzo fisso"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:117
|
||||||
|
msgid "Label (Optional)"
|
||||||
|
msgstr "Etichetta (Opzionale)"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:118
|
||||||
|
msgid "e.g., Starter Pack"
|
||||||
|
msgstr "es. Pacchetto starter"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:71
|
||||||
|
msgid "Volume Discounts"
|
||||||
|
msgstr "Sconti quantità"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:94
|
||||||
|
#: includes/class-wc-tpp-frontend.php:76
|
||||||
|
msgid "Price per Unit"
|
||||||
|
msgstr "Prezzo per unità"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:77
|
||||||
|
msgid "You Save"
|
||||||
|
msgstr "Risparmi"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:110
|
||||||
|
msgid "Package Deals"
|
||||||
|
msgstr "Offerte pacchetto"
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr "Scegli una dimensione pacchetto qui sotto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:123
|
||||||
|
msgid "pieces"
|
||||||
|
msgstr "pezzi"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:129
|
||||||
|
msgid "per unit"
|
||||||
|
msgstr "per unità"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:133
|
||||||
|
msgid "Select Package"
|
||||||
|
msgstr "Seleziona pacchetto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:63
|
||||||
|
msgid "Package price"
|
||||||
|
msgstr "Prezzo pacchetto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:66
|
||||||
|
msgid "Volume discount"
|
||||||
|
msgstr "Sconto quantità"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:124
|
||||||
|
msgid "this product"
|
||||||
|
msgstr "questo prodotto"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:128
|
||||||
|
msgid "The quantity %1$d is not available for %2$s. Please choose from the available package sizes: %3$s"
|
||||||
|
msgstr "La quantità %1$d non è disponibile per %2$s. Si prega di scegliere tra le dimensioni pacchetto disponibili: %3$s"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:173
|
||||||
|
msgid "View Options"
|
||||||
|
msgstr "Visualizza opzioni"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-frontend.php:178
|
||||||
|
msgid "View options for %s"
|
||||||
|
msgstr "Visualizza opzioni per %s"
|
||||||
BIN
releases/wc-tier-and-package-prices-1.1.21.zip
Normal file
BIN
releases/wc-tier-and-package-prices-1.1.21.zip
Normal file
Binary file not shown.
1
releases/wc-tier-and-package-prices-1.1.21.zip.md5
Normal file
1
releases/wc-tier-and-package-prices-1.1.21.zip.md5
Normal file
@@ -0,0 +1 @@
|
|||||||
|
16813b3ed0d1001d5f60194d61d36fc2 wc-tier-and-package-prices-1.1.21.zip
|
||||||
1
releases/wc-tier-and-package-prices-1.1.21.zip.sha256
Normal file
1
releases/wc-tier-and-package-prices-1.1.21.zip.sha256
Normal file
@@ -0,0 +1 @@
|
|||||||
|
e0063852a9ac23b1fd994471a2829f9dcbe26316f00ddee2d00f77c7c6a47c8f wc-tier-and-package-prices-1.1.21.zip
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
* Plugin Name: WooCommerce Tier and Package Prices
|
* Plugin Name: WooCommerce Tier and Package Prices
|
||||||
* Plugin URI: https://src.bundespruefstelle.ch/magdev/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
|
* Description: Add tier pricing and package prices to WooCommerce products with configurable quantities at fixed prices
|
||||||
* Version: 1.1.20
|
* Version: 1.1.21
|
||||||
* Author: Marco Graetsch
|
* Author: Marco Graetsch
|
||||||
* Author URI: https://src.bundespruefstelle.ch/magdev
|
* Author URI: https://src.bundespruefstelle.ch/magdev
|
||||||
* Text Domain: wc-tier-package-prices
|
* Text Domain: wc-tier-package-prices
|
||||||
@@ -23,7 +23,7 @@ if (!defined('ABSPATH')) {
|
|||||||
|
|
||||||
// Define plugin constants
|
// Define plugin constants
|
||||||
if (!defined('WC_TPP_VERSION')) {
|
if (!defined('WC_TPP_VERSION')) {
|
||||||
define('WC_TPP_VERSION', '1.1.20');
|
define('WC_TPP_VERSION', '1.1.21');
|
||||||
}
|
}
|
||||||
if (!defined('WC_TPP_PLUGIN_DIR')) {
|
if (!defined('WC_TPP_PLUGIN_DIR')) {
|
||||||
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||||
|
|||||||
Reference in New Issue
Block a user