You've already forked wc-tier-and-package-prices
Release version 1.1.0 - Package quantity restriction feature
Added comprehensive package quantity restriction functionality that allows limiting product purchases to predefined package sizes only. Features: - Global setting to enable package quantity restrictions - Per-product override for quantity restrictions - Automatic hiding of quantity input field when restricted - Frontend validation with package selection UI - Server-side cart validation - User-friendly error messages - Complete translations for all supported languages 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,8 @@
|
|||||||
"Bash(mkdir:*)",
|
"Bash(mkdir:*)",
|
||||||
"Bash(composer init:*)",
|
"Bash(composer init:*)",
|
||||||
"Bash(composer install:*)",
|
"Bash(composer install:*)",
|
||||||
"Bash(composer update:*)"
|
"Bash(composer update:*)",
|
||||||
|
"Bash(git add:*)"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
30
CHANGELOG.md
30
CHANGELOG.md
@@ -5,6 +5,36 @@ 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.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
|
## [1.0.2] - 2025-12-21
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
@@ -8,8 +8,9 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
const $quantityInput = $('input.qty');
|
const $quantityInput = $('input.qty');
|
||||||
const $priceDisplay = $('.woocommerce-Price-amount.amount').first();
|
const $priceDisplay = $('.woocommerce-Price-amount.amount').first();
|
||||||
|
const isRestrictedMode = $('.wc-tpp-package-pricing-table').hasClass('wc-tpp-restricted-mode');
|
||||||
|
|
||||||
if ($quantityInput.length === 0) {
|
if ($quantityInput.length === 0 && !isRestrictedMode) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,7 +165,30 @@
|
|||||||
const $package = $(this).closest('.wc-tpp-package');
|
const $package = $(this).closest('.wc-tpp-package');
|
||||||
const qty = parseInt($package.data('qty'));
|
const qty = parseInt($package.data('qty'));
|
||||||
|
|
||||||
$quantityInput.val(qty).trigger('change');
|
if (isRestrictedMode) {
|
||||||
|
// In restricted mode, we need to set a hidden input or use data attribute
|
||||||
|
// since the quantity field is hidden
|
||||||
|
if ($quantityInput.length === 0) {
|
||||||
|
// Create a hidden quantity input if it doesn't exist
|
||||||
|
if ($('.qty-hidden-input').length === 0) {
|
||||||
|
$('.single_add_to_cart_button').before('<input type="hidden" name="quantity" class="qty qty-hidden-input" value="1" />');
|
||||||
|
}
|
||||||
|
$('.qty-hidden-input').val(qty);
|
||||||
|
} else {
|
||||||
|
$quantityInput.val(qty);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Highlight selected package
|
||||||
|
$('.wc-tpp-package').removeClass('wc-tpp-selected');
|
||||||
|
$package.addClass('wc-tpp-selected');
|
||||||
|
|
||||||
|
// Update price display
|
||||||
|
const price = parseFloat($package.data('price'));
|
||||||
|
const unitPrice = price / qty;
|
||||||
|
updatePrice(unitPrice, 'Package price: ' + formatPrice(price) + ' total');
|
||||||
|
} else {
|
||||||
|
$quantityInput.val(qty).trigger('change');
|
||||||
|
}
|
||||||
|
|
||||||
// Scroll to add to cart button
|
// Scroll to add to cart button
|
||||||
$('html, body').animate({
|
$('html, body').animate({
|
||||||
@@ -172,8 +196,22 @@
|
|||||||
}, 500);
|
}, 500);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// In restricted mode, prevent form submission if no package is selected
|
||||||
|
if (isRestrictedMode) {
|
||||||
|
$('form.cart').on('submit', function(e) {
|
||||||
|
const hasSelection = $('.wc-tpp-package.wc-tpp-selected').length > 0;
|
||||||
|
if (!hasSelection) {
|
||||||
|
e.preventDefault();
|
||||||
|
alert('Please select a package size before adding to cart.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Initial update
|
// Initial update
|
||||||
updatePriceDisplay();
|
if (!isRestrictedMode) {
|
||||||
|
updatePriceDisplay();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|||||||
@@ -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.0.2",
|
"version": "1.1.0",
|
||||||
"type": "wordpress-plugin",
|
"type": "wordpress-plugin",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"authors": [
|
"authors": [
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ class WC_TPP_Cart {
|
|||||||
add_action('woocommerce_before_calculate_totals', array($this, 'apply_tier_package_pricing'), 10, 1);
|
add_action('woocommerce_before_calculate_totals', array($this, 'apply_tier_package_pricing'), 10, 1);
|
||||||
add_filter('woocommerce_cart_item_price', array($this, 'display_cart_item_price'), 10, 3);
|
add_filter('woocommerce_cart_item_price', array($this, 'display_cart_item_price'), 10, 3);
|
||||||
add_filter('woocommerce_cart_item_subtotal', array($this, 'display_cart_item_subtotal'), 10, 3);
|
add_filter('woocommerce_cart_item_subtotal', array($this, 'display_cart_item_subtotal'), 10, 3);
|
||||||
|
add_filter('woocommerce_add_to_cart_validation', array($this, 'validate_package_quantity'), 10, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function apply_tier_package_pricing($cart) {
|
public function apply_tier_package_pricing($cart) {
|
||||||
@@ -89,6 +90,53 @@ class WC_TPP_Cart {
|
|||||||
}
|
}
|
||||||
return $subtotal;
|
return $subtotal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function validate_package_quantity($passed, $product_id, $quantity) {
|
||||||
|
// Check if restriction is enabled globally or for this product
|
||||||
|
$global_restrict = get_option('wc_tpp_restrict_package_quantities', 'no') === 'yes';
|
||||||
|
$product_restrict = get_post_meta($product_id, '_wc_tpp_restrict_to_packages', true) === 'yes';
|
||||||
|
|
||||||
|
if (!$global_restrict && !$product_restrict) {
|
||||||
|
return $passed;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get packages for this product
|
||||||
|
$packages = get_post_meta($product_id, '_wc_tpp_packages', true);
|
||||||
|
|
||||||
|
if (empty($packages) || !is_array($packages)) {
|
||||||
|
return $passed;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the quantity matches any package
|
||||||
|
$valid_quantity = false;
|
||||||
|
$available_quantities = array();
|
||||||
|
|
||||||
|
foreach ($packages as $package) {
|
||||||
|
$available_quantities[] = $package['qty'];
|
||||||
|
if ($quantity == $package['qty']) {
|
||||||
|
$valid_quantity = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$valid_quantity) {
|
||||||
|
$product = wc_get_product($product_id);
|
||||||
|
$product_name = $product ? $product->get_name() : __('this product', 'wc-tier-package-prices');
|
||||||
|
|
||||||
|
wc_add_notice(
|
||||||
|
sprintf(
|
||||||
|
__('The quantity %1$d is not available for %2$s. Please choose from the available package sizes: %3$s', 'wc-tier-package-prices'),
|
||||||
|
$quantity,
|
||||||
|
$product_name,
|
||||||
|
implode(', ', $available_quantities)
|
||||||
|
),
|
||||||
|
'error'
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $passed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
new WC_TPP_Cart();
|
new WC_TPP_Cart();
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ class WC_TPP_Frontend {
|
|||||||
add_action('woocommerce_before_add_to_cart_button', array($this, 'display_pricing_table_before'), 20);
|
add_action('woocommerce_before_add_to_cart_button', array($this, 'display_pricing_table_before'), 20);
|
||||||
add_action('woocommerce_after_add_to_cart_button', array($this, 'display_pricing_table_after'), 10);
|
add_action('woocommerce_after_add_to_cart_button', array($this, 'display_pricing_table_after'), 10);
|
||||||
add_action('woocommerce_single_product_summary', array($this, 'display_pricing_table_after_price'), 15);
|
add_action('woocommerce_single_product_summary', array($this, 'display_pricing_table_after_price'), 15);
|
||||||
|
add_action('woocommerce_before_add_to_cart_quantity', array($this, 'maybe_hide_quantity_input'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function enqueue_scripts() {
|
public function enqueue_scripts() {
|
||||||
@@ -50,6 +51,24 @@ class WC_TPP_Frontend {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function maybe_hide_quantity_input() {
|
||||||
|
global $product;
|
||||||
|
|
||||||
|
if (!$product || !is_a($product, 'WC_Product')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$product_id = $product->get_id();
|
||||||
|
$global_restrict = get_option('wc_tpp_restrict_package_quantities', 'no') === 'yes';
|
||||||
|
$product_restrict = get_post_meta($product_id, '_wc_tpp_restrict_to_packages', true) === 'yes';
|
||||||
|
$packages = get_post_meta($product_id, '_wc_tpp_packages', true);
|
||||||
|
|
||||||
|
// Hide quantity input if restriction is enabled and packages exist
|
||||||
|
if (($global_restrict || $product_restrict) && !empty($packages)) {
|
||||||
|
echo '<style>.quantity { display: none !important; }</style>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function display_pricing_table() {
|
public function display_pricing_table() {
|
||||||
global $product;
|
global $product;
|
||||||
|
|
||||||
@@ -60,6 +79,8 @@ class WC_TPP_Frontend {
|
|||||||
$product_id = $product->get_id();
|
$product_id = $product->get_id();
|
||||||
$tiers = get_post_meta($product_id, '_wc_tpp_tiers', true);
|
$tiers = get_post_meta($product_id, '_wc_tpp_tiers', true);
|
||||||
$packages = get_post_meta($product_id, '_wc_tpp_packages', true);
|
$packages = get_post_meta($product_id, '_wc_tpp_packages', true);
|
||||||
|
$global_restrict = get_option('wc_tpp_restrict_package_quantities', 'no') === 'yes';
|
||||||
|
$product_restrict = get_post_meta($product_id, '_wc_tpp_restrict_to_packages', true) === 'yes';
|
||||||
|
|
||||||
if (empty($tiers) && empty($packages)) {
|
if (empty($tiers) && empty($packages)) {
|
||||||
return;
|
return;
|
||||||
@@ -68,7 +89,8 @@ class WC_TPP_Frontend {
|
|||||||
WC_TPP_Template_Loader::get_instance()->display('frontend/pricing-table.twig', array(
|
WC_TPP_Template_Loader::get_instance()->display('frontend/pricing-table.twig', array(
|
||||||
'product' => $product,
|
'product' => $product,
|
||||||
'tiers' => $tiers,
|
'tiers' => $tiers,
|
||||||
'packages' => $packages
|
'packages' => $packages,
|
||||||
|
'restrict_to_packages' => $global_restrict || $product_restrict
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,15 @@ class WC_TPP_Product_Meta {
|
|||||||
<p class="form-field">
|
<p class="form-field">
|
||||||
<button type="button" class="button wc-tpp-add-package"><?php _e('Add Package', 'wc-tier-package-prices'); ?></button>
|
<button type="button" class="button wc-tpp-add-package"><?php _e('Add Package', 'wc-tier-package-prices'); ?></button>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
woocommerce_wp_checkbox(array(
|
||||||
|
'id' => '_wc_tpp_restrict_to_packages',
|
||||||
|
'label' => __('Restrict to Package Quantities', 'wc-tier-package-prices'),
|
||||||
|
'description' => __('Only allow quantities defined in packages above', 'wc-tier-package-prices'),
|
||||||
|
'desc_tip' => true,
|
||||||
|
));
|
||||||
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/html" id="wc-tpp-tier-row-template">
|
<script type="text/html" id="wc-tpp-tier-row-template">
|
||||||
@@ -151,6 +160,10 @@ class WC_TPP_Product_Meta {
|
|||||||
} else {
|
} else {
|
||||||
delete_post_meta($post_id, '_wc_tpp_packages');
|
delete_post_meta($post_id, '_wc_tpp_packages');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Save package quantity restriction setting
|
||||||
|
$restrict_to_packages = isset($_POST['_wc_tpp_restrict_to_packages']) ? 'yes' : 'no';
|
||||||
|
update_post_meta($post_id, '_wc_tpp_restrict_to_packages', $restrict_to_packages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,15 @@ class WC_TPP_Settings extends WC_Settings_Page {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
array(
|
||||||
|
'title' => __('Restrict to Package Quantities', 'wc-tier-package-prices'),
|
||||||
|
'desc' => __('Limit quantities to defined package sizes only', 'wc-tier-package-prices'),
|
||||||
|
'id' => 'wc_tpp_restrict_package_quantities',
|
||||||
|
'default' => 'no',
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'desc_tip' => __('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.', 'wc-tier-package-prices'),
|
||||||
|
),
|
||||||
|
|
||||||
array(
|
array(
|
||||||
'type' => 'sectionend',
|
'type' => 'sectionend',
|
||||||
'id' => 'wc_tpp_settings',
|
'id' => 'wc_tpp_settings',
|
||||||
|
|||||||
Binary file not shown.
@@ -3,7 +3,7 @@
|
|||||||
# This file is distributed under the GPL v2 or later.
|
# This file is distributed under the GPL v2 or later.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: WooCommerce Tier and Package Prices 1.0.0\n"
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.0\n"
|
||||||
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
||||||
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
|
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
|
||||||
@@ -23,37 +23,81 @@ msgstr "WooCommerce Staffel- und Paketpreise benötigt eine installierte und akt
|
|||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:21
|
#: includes/class-wc-tpp-admin.php:21
|
||||||
#: includes/class-wc-tpp-admin.php:22
|
#: includes/class-wc-tpp-admin.php:22
|
||||||
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
msgid "Tier & Package Prices"
|
msgid "Tier & Package Prices"
|
||||||
msgstr "Staffel- & Paketpreise"
|
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-admin.php:54
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
msgid "Enable Tier Pricing"
|
msgid "Enable Tier Pricing"
|
||||||
msgstr "Staffelpreise aktivieren"
|
msgstr "Staffelpreise aktivieren"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:58
|
#: includes/class-wc-tpp-admin.php:58
|
||||||
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
msgid "Enable tier pricing for products"
|
msgid "Enable tier pricing for products"
|
||||||
msgstr "Staffelpreise für Produkte aktivieren"
|
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-admin.php:63
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
msgid "Enable Package Pricing"
|
msgid "Enable Package Pricing"
|
||||||
msgstr "Paketpreise aktivieren"
|
msgstr "Paketpreise aktivieren"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:67
|
#: includes/class-wc-tpp-admin.php:67
|
||||||
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
msgid "Enable fixed-price packages for products"
|
msgid "Enable fixed-price packages for products"
|
||||||
msgstr "Festpreis-Pakete für Produkte aktivieren"
|
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-admin.php:72
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
msgid "Display Pricing Table"
|
msgid "Display Pricing Table"
|
||||||
msgstr "Preistabelle anzeigen"
|
msgstr "Preistabelle anzeigen"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:76
|
#: includes/class-wc-tpp-admin.php:76
|
||||||
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
msgid "Show tier and package pricing table on product pages"
|
msgid "Show tier and package pricing table on product pages"
|
||||||
msgstr "Staffel- und Paketpreis-Tabelle auf Produktseiten anzeigen"
|
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-admin.php:81
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
msgid "Display Position"
|
msgid "Display Position"
|
||||||
msgstr "Anzeigeposition"
|
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
|
#: includes/class-wc-tpp-admin.php:85
|
||||||
msgid "Before Add to Cart"
|
msgid "Before Add to Cart"
|
||||||
msgstr "Vor \"In den Warenkorb\""
|
msgstr "Vor \"In den Warenkorb\""
|
||||||
@@ -63,9 +107,23 @@ msgid "After Add to Cart"
|
|||||||
msgstr "Nach \"In den Warenkorb\""
|
msgstr "Nach \"In den Warenkorb\""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:87
|
#: includes/class-wc-tpp-admin.php:87
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
msgid "After Price"
|
msgid "After Price"
|
||||||
msgstr "Nach dem Preis"
|
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, 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
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
msgid "Tier Pricing"
|
msgid "Tier Pricing"
|
||||||
msgstr "Staffelpreise"
|
msgstr "Staffelpreise"
|
||||||
@@ -90,6 +148,10 @@ msgstr "Festpreis-Pakete mit bestimmten Mengen festlegen. Zum Beispiel: 10 Stüc
|
|||||||
msgid "Add Package"
|
msgid "Add Package"
|
||||||
msgstr "Paket hinzufügen"
|
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
|
#: includes/class-wc-tpp-product-meta.php:90
|
||||||
msgid "Minimum Quantity"
|
msgid "Minimum Quantity"
|
||||||
msgstr "Mindestmenge"
|
msgstr "Mindestmenge"
|
||||||
@@ -142,6 +204,10 @@ msgstr "Du sparst"
|
|||||||
msgid "Package Deals"
|
msgid "Package Deals"
|
||||||
msgstr "Paketangebote"
|
msgstr "Paketangebote"
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr "Wähle unten eine Paketgrösse"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:123
|
#: includes/class-wc-tpp-frontend.php:123
|
||||||
msgid "pieces"
|
msgid "pieces"
|
||||||
msgstr "Stück"
|
msgstr "Stück"
|
||||||
@@ -161,3 +227,11 @@ msgstr "Paketpreis"
|
|||||||
#: includes/class-wc-tpp-cart.php:66
|
#: includes/class-wc-tpp-cart.php:66
|
||||||
msgid "Volume discount"
|
msgid "Volume discount"
|
||||||
msgstr "Mengenrabatt"
|
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össen: %3$s"
|
||||||
|
|||||||
Binary file not shown.
@@ -3,7 +3,7 @@
|
|||||||
# This file is distributed under the GPL v2 or later.
|
# This file is distributed under the GPL v2 or later.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: WooCommerce Tier and Package Prices 1.0.0\n"
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.0\n"
|
||||||
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
||||||
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
|
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
|
||||||
@@ -23,37 +23,81 @@ msgstr "WooCommerce Staffel- und Paketpreise erfordert, dass WooCommerce install
|
|||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:21
|
#: includes/class-wc-tpp-admin.php:21
|
||||||
#: includes/class-wc-tpp-admin.php:22
|
#: includes/class-wc-tpp-admin.php:22
|
||||||
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
msgid "Tier & Package Prices"
|
msgid "Tier & Package Prices"
|
||||||
msgstr "Staffel- & Paketpreise"
|
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-admin.php:54
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
msgid "Enable Tier Pricing"
|
msgid "Enable Tier Pricing"
|
||||||
msgstr "Staffelpreise aktivieren"
|
msgstr "Staffelpreise aktivieren"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:58
|
#: includes/class-wc-tpp-admin.php:58
|
||||||
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
msgid "Enable tier pricing for products"
|
msgid "Enable tier pricing for products"
|
||||||
msgstr "Staffelpreise für Produkte aktivieren"
|
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-admin.php:63
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
msgid "Enable Package Pricing"
|
msgid "Enable Package Pricing"
|
||||||
msgstr "Paketpreise aktivieren"
|
msgstr "Paketpreise aktivieren"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:67
|
#: includes/class-wc-tpp-admin.php:67
|
||||||
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
msgid "Enable fixed-price packages for products"
|
msgid "Enable fixed-price packages for products"
|
||||||
msgstr "Festpreis-Pakete für Produkte aktivieren"
|
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-admin.php:72
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
msgid "Display Pricing Table"
|
msgid "Display Pricing Table"
|
||||||
msgstr "Preistabelle anzeigen"
|
msgstr "Preistabelle anzeigen"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:76
|
#: includes/class-wc-tpp-admin.php:76
|
||||||
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
msgid "Show tier and package pricing table on product pages"
|
msgid "Show tier and package pricing table on product pages"
|
||||||
msgstr "Staffel- und Paketpreis-Tabelle auf Produktseiten anzeigen"
|
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-admin.php:81
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
msgid "Display Position"
|
msgid "Display Position"
|
||||||
msgstr "Anzeigeposition"
|
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
|
#: includes/class-wc-tpp-admin.php:85
|
||||||
msgid "Before Add to Cart"
|
msgid "Before Add to Cart"
|
||||||
msgstr "Vor \"In den Warenkorb\""
|
msgstr "Vor \"In den Warenkorb\""
|
||||||
@@ -63,9 +107,23 @@ msgid "After Add to Cart"
|
|||||||
msgstr "Nach \"In den Warenkorb\""
|
msgstr "Nach \"In den Warenkorb\""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:87
|
#: includes/class-wc-tpp-admin.php:87
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
msgid "After Price"
|
msgid "After Price"
|
||||||
msgstr "Nach dem Preis"
|
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, 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
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
msgid "Tier Pricing"
|
msgid "Tier Pricing"
|
||||||
msgstr "Staffelpreise"
|
msgstr "Staffelpreise"
|
||||||
@@ -90,6 +148,10 @@ msgstr "Festpreis-Pakete mit bestimmten Mengen festlegen. Zum Beispiel: 10 Stüc
|
|||||||
msgid "Add Package"
|
msgid "Add Package"
|
||||||
msgstr "Paket hinzufügen"
|
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
|
#: includes/class-wc-tpp-product-meta.php:90
|
||||||
msgid "Minimum Quantity"
|
msgid "Minimum Quantity"
|
||||||
msgstr "Mindestmenge"
|
msgstr "Mindestmenge"
|
||||||
@@ -142,6 +204,10 @@ msgstr "Sie sparen"
|
|||||||
msgid "Package Deals"
|
msgid "Package Deals"
|
||||||
msgstr "Paketangebote"
|
msgstr "Paketangebote"
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr "Wählen Sie unten eine Paketgröße"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:123
|
#: includes/class-wc-tpp-frontend.php:123
|
||||||
msgid "pieces"
|
msgid "pieces"
|
||||||
msgstr "Stück"
|
msgstr "Stück"
|
||||||
@@ -161,3 +227,11 @@ msgstr "Paketpreis"
|
|||||||
#: includes/class-wc-tpp-cart.php:66
|
#: includes/class-wc-tpp-cart.php:66
|
||||||
msgid "Volume discount"
|
msgid "Volume discount"
|
||||||
msgstr "Mengenrabatt"
|
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ößen: %3$s"
|
||||||
|
|||||||
Binary file not shown.
@@ -3,7 +3,7 @@
|
|||||||
# This file is distributed under the GPL v2 or later.
|
# This file is distributed under the GPL v2 or later.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: WooCommerce Tier and Package Prices 1.0.0\n"
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.0\n"
|
||||||
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
||||||
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
|
"PO-Revision-Date: 2025-12-21 00:00+0000\n"
|
||||||
@@ -23,37 +23,81 @@ msgstr "WooCommerce Tier and Package Prices requires WooCommerce to be installed
|
|||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:21
|
#: includes/class-wc-tpp-admin.php:21
|
||||||
#: includes/class-wc-tpp-admin.php:22
|
#: includes/class-wc-tpp-admin.php:22
|
||||||
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
msgid "Tier & Package Prices"
|
msgid "Tier & Package Prices"
|
||||||
msgstr "Tier & Package Prices"
|
msgstr "Tier & Package Prices"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:40
|
||||||
|
msgid "General"
|
||||||
|
msgstr "General"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:58
|
||||||
|
msgid "Tier & Package Prices Settings"
|
||||||
|
msgstr "Tier & Package Prices Settings"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:60
|
||||||
|
msgid "Configure tier pricing and package pricing options for your WooCommerce products."
|
||||||
|
msgstr "Configure tier pricing and package pricing options for your WooCommerce products."
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:54
|
#: includes/class-wc-tpp-admin.php:54
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
msgid "Enable Tier Pricing"
|
msgid "Enable Tier Pricing"
|
||||||
msgstr "Enable Tier Pricing"
|
msgstr "Enable Tier Pricing"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:58
|
#: includes/class-wc-tpp-admin.php:58
|
||||||
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
msgid "Enable tier pricing for products"
|
msgid "Enable tier pricing for products"
|
||||||
msgstr "Enable tier pricing for products"
|
msgstr "Enable tier pricing for products"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:70
|
||||||
|
msgid "Allow quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr "Allow quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:63
|
#: includes/class-wc-tpp-admin.php:63
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
msgid "Enable Package Pricing"
|
msgid "Enable Package Pricing"
|
||||||
msgstr "Enable Package Pricing"
|
msgstr "Enable Package Pricing"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:67
|
#: includes/class-wc-tpp-admin.php:67
|
||||||
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
msgid "Enable fixed-price packages for products"
|
msgid "Enable fixed-price packages for products"
|
||||||
msgstr "Enable fixed-price packages for products"
|
msgstr "Enable fixed-price packages for products"
|
||||||
|
|
||||||
|
#: 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 "Allow fixed-price packages with specific quantities. For example: 10 pieces for $50, 25 pieces for $100."
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:72
|
#: includes/class-wc-tpp-admin.php:72
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
msgid "Display Pricing Table"
|
msgid "Display Pricing Table"
|
||||||
msgstr "Display Pricing Table"
|
msgstr "Display Pricing Table"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:76
|
#: includes/class-wc-tpp-admin.php:76
|
||||||
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
msgid "Show tier and package pricing table on product pages"
|
msgid "Show tier and package pricing table on product pages"
|
||||||
msgstr "Show tier and package pricing table on product pages"
|
msgstr "Show tier and package pricing table on product pages"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:88
|
||||||
|
msgid "Display the pricing table to customers on product pages."
|
||||||
|
msgstr "Display the pricing table to customers on product pages."
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:81
|
#: includes/class-wc-tpp-admin.php:81
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
msgid "Display Position"
|
msgid "Display Position"
|
||||||
msgstr "Display Position"
|
msgstr "Display Position"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:93
|
||||||
|
msgid "Choose where to display the pricing table on product pages."
|
||||||
|
msgstr "Choose where to display the pricing table on product pages."
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:101
|
||||||
|
msgid "Before Add to Cart Button"
|
||||||
|
msgstr "Before Add to Cart Button"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:102
|
||||||
|
msgid "After Add to Cart Button"
|
||||||
|
msgstr "After Add to Cart Button"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:85
|
#: includes/class-wc-tpp-admin.php:85
|
||||||
msgid "Before Add to Cart"
|
msgid "Before Add to Cart"
|
||||||
msgstr "Before Add to Cart"
|
msgstr "Before Add to Cart"
|
||||||
@@ -63,9 +107,23 @@ msgid "After Add to Cart"
|
|||||||
msgstr "After Add to Cart"
|
msgstr "After Add to Cart"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:87
|
#: includes/class-wc-tpp-admin.php:87
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
msgid "After Price"
|
msgid "After Price"
|
||||||
msgstr "After Price"
|
msgstr "After Price"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:108
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:76
|
||||||
|
msgid "Restrict to Package Quantities"
|
||||||
|
msgstr "Restrict to Package Quantities"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:109
|
||||||
|
msgid "Limit quantities to defined package sizes only"
|
||||||
|
msgstr "Limit quantities to defined package sizes only"
|
||||||
|
|
||||||
|
#: 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 "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."
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:23
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
msgid "Tier Pricing"
|
msgid "Tier Pricing"
|
||||||
msgstr "Tier Pricing"
|
msgstr "Tier Pricing"
|
||||||
@@ -90,6 +148,10 @@ msgstr "Set fixed-price packages with specific quantities. For example: 10 piece
|
|||||||
msgid "Add Package"
|
msgid "Add Package"
|
||||||
msgstr "Add Package"
|
msgstr "Add Package"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:77
|
||||||
|
msgid "Only allow quantities defined in packages above"
|
||||||
|
msgstr "Only allow quantities defined in packages above"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:90
|
#: includes/class-wc-tpp-product-meta.php:90
|
||||||
msgid "Minimum Quantity"
|
msgid "Minimum Quantity"
|
||||||
msgstr "Minimum Quantity"
|
msgstr "Minimum Quantity"
|
||||||
@@ -142,6 +204,10 @@ msgstr "You Save"
|
|||||||
msgid "Package Deals"
|
msgid "Package Deals"
|
||||||
msgstr "Package Deals"
|
msgstr "Package Deals"
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr "Choose a package size below"
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:123
|
#: includes/class-wc-tpp-frontend.php:123
|
||||||
msgid "pieces"
|
msgid "pieces"
|
||||||
msgstr "pieces"
|
msgstr "pieces"
|
||||||
@@ -161,3 +227,11 @@ msgstr "Package price"
|
|||||||
#: includes/class-wc-tpp-cart.php:66
|
#: includes/class-wc-tpp-cart.php:66
|
||||||
msgid "Volume discount"
|
msgid "Volume discount"
|
||||||
msgstr "Volume discount"
|
msgstr "Volume discount"
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:124
|
||||||
|
msgid "this product"
|
||||||
|
msgstr "this product"
|
||||||
|
|
||||||
|
#: 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 "The quantity %1$d is not available for %2$s. Please choose from the available package sizes: %3$s"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# This file is distributed under the GPL v2 or later.
|
# This file is distributed under the GPL v2 or later.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: WooCommerce Tier and Package Prices 1.0.0\n"
|
"Project-Id-Version: WooCommerce Tier and Package Prices 1.1.0\n"
|
||||||
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/wc-tier-package-prices\n"
|
||||||
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
"POT-Creation-Date: 2025-12-21 00:00+0000\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -14,55 +14,96 @@ msgstr ""
|
|||||||
"X-Generator: Poedit 3.0\n"
|
"X-Generator: Poedit 3.0\n"
|
||||||
"X-Domain: wc-tier-package-prices\n"
|
"X-Domain: wc-tier-package-prices\n"
|
||||||
|
|
||||||
#: wc-tier-and-package-prices.php:41
|
#: wc-tier-and-package-prices.php:44
|
||||||
msgid "WooCommerce Tier and Package Prices requires WooCommerce to be installed and active."
|
msgid "WooCommerce Tier and Package Prices requires WooCommerce to be installed and active."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:21
|
#: includes/class-wc-tpp-settings.php:28
|
||||||
#: includes/class-wc-tpp-admin.php:22
|
#: includes/class-wc-tpp-settings.php:58
|
||||||
msgid "Tier & Package Prices"
|
msgid "Tier & Package Prices"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:54
|
#: includes/class-wc-tpp-settings.php:40
|
||||||
|
msgid "General"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:58
|
||||||
|
msgid "Tier & Package Prices Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:60
|
||||||
|
msgid "Configure tier pricing and package pricing options for your WooCommerce products."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:65
|
||||||
msgid "Enable Tier Pricing"
|
msgid "Enable Tier Pricing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:58
|
#: includes/class-wc-tpp-settings.php:66
|
||||||
msgid "Enable tier pricing for products"
|
msgid "Enable tier pricing for products"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:63
|
#: includes/class-wc-tpp-settings.php:70
|
||||||
|
msgid "Allow quantity-based pricing tiers. Customers get discounted prices when buying in larger quantities."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:74
|
||||||
msgid "Enable Package Pricing"
|
msgid "Enable Package Pricing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:67
|
#: includes/class-wc-tpp-settings.php:75
|
||||||
msgid "Enable fixed-price packages for products"
|
msgid "Enable fixed-price packages for products"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:72
|
#: 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 ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:83
|
||||||
msgid "Display Pricing Table"
|
msgid "Display Pricing Table"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:76
|
#: includes/class-wc-tpp-settings.php:84
|
||||||
msgid "Show tier and package pricing table on product pages"
|
msgid "Show tier and package pricing table on product pages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:81
|
#: includes/class-wc-tpp-settings.php:88
|
||||||
|
msgid "Display the pricing table to customers on product pages."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:92
|
||||||
msgid "Display Position"
|
msgid "Display Position"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:85
|
#: includes/class-wc-tpp-settings.php:93
|
||||||
msgid "Before Add to Cart"
|
msgid "Choose where to display the pricing table on product pages."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:86
|
#: includes/class-wc-tpp-settings.php:101
|
||||||
msgid "After Add to Cart"
|
msgid "Before Add to Cart Button"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-admin.php:87
|
#: includes/class-wc-tpp-settings.php:102
|
||||||
|
msgid "After Add to Cart Button"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:103
|
||||||
msgid "After Price"
|
msgid "After Price"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:108
|
||||||
|
#: includes/class-wc-tpp-product-meta.php:76
|
||||||
|
msgid "Restrict to Package Quantities"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-settings.php:109
|
||||||
|
msgid "Limit quantities to defined package sizes only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:23
|
#: includes/class-wc-tpp-product-meta.php:23
|
||||||
msgid "Tier Pricing"
|
msgid "Tier Pricing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -87,80 +128,97 @@ msgstr ""
|
|||||||
msgid "Add Package"
|
msgid "Add Package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:90
|
#: includes/class-wc-tpp-product-meta.php:77
|
||||||
|
msgid "Only allow quantities defined in packages above"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/admin/tier-row.twig:9
|
||||||
msgid "Minimum Quantity"
|
msgid "Minimum Quantity"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:91
|
#: templates/admin/tier-row.twig:13
|
||||||
|
#: templates/admin/package-row.twig:13
|
||||||
msgid "e.g., 10"
|
msgid "e.g., 10"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:94
|
#: templates/admin/tier-row.twig:16
|
||||||
msgid "Price per Unit"
|
msgid "Price per Unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:95
|
#: templates/admin/tier-row.twig:21
|
||||||
#: includes/class-wc-tpp-product-meta.php:114
|
|
||||||
msgid "e.g., 9.99"
|
msgid "e.g., 9.99"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:97
|
#: templates/admin/tier-row.twig:25
|
||||||
#: includes/class-wc-tpp-product-meta.php:120
|
#: templates/admin/package-row.twig:30
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:109
|
#: templates/admin/package-row.twig:9
|
||||||
|
#: templates/frontend/tier-pricing-table.twig:13
|
||||||
msgid "Quantity"
|
msgid "Quantity"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:113
|
#: templates/admin/package-row.twig:20
|
||||||
msgid "Fixed Price"
|
msgid "Fixed Price"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:117
|
#: templates/admin/package-row.twig:18
|
||||||
|
msgid "e.g., 99.99"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/admin/package-row.twig:24
|
||||||
msgid "Label (Optional)"
|
msgid "Label (Optional)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-product-meta.php:118
|
#: templates/admin/package-row.twig:29
|
||||||
msgid "e.g., Starter Pack"
|
msgid "e.g., Starter Pack"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:71
|
#: templates/frontend/tier-pricing-table.twig:9
|
||||||
msgid "Volume Discounts"
|
msgid "Volume Discounts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:75
|
#: templates/frontend/tier-pricing-table.twig:14
|
||||||
msgid "Quantity"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:76
|
|
||||||
msgid "Price per Unit"
|
msgid "Price per Unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:77
|
#: templates/frontend/tier-pricing-table.twig:15
|
||||||
msgid "You Save"
|
msgid "You Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:110
|
#: templates/frontend/package-pricing-display.twig:8
|
||||||
msgid "Package Deals"
|
msgid "Package Deals"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:123
|
#: templates/frontend/package-pricing-display.twig:11
|
||||||
|
msgid "Choose a package size below"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/frontend/package-pricing-display.twig:20
|
||||||
msgid "pieces"
|
msgid "pieces"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:129
|
#: templates/frontend/package-pricing-display.twig:24
|
||||||
msgid "per unit"
|
msgid "per unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-frontend.php:133
|
#: templates/frontend/package-pricing-display.twig:28
|
||||||
msgid "Select Package"
|
msgid "Select Package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-cart.php:63
|
#: includes/class-wc-tpp-cart.php:76
|
||||||
msgid "Package price"
|
msgid "Package price"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class-wc-tpp-cart.php:66
|
#: includes/class-wc-tpp-cart.php:79
|
||||||
msgid "Volume discount"
|
msgid "Volume discount"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-wc-tpp-cart.php:124
|
||||||
|
msgid "this product"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
|
|||||||
198
releases/RELEASE-INFO-1.0.2.md
Normal file
198
releases/RELEASE-INFO-1.0.2.md
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
# WooCommerce Tier and Package Prices - Release 1.0.2
|
||||||
|
|
||||||
|
**Release Date:** December 21, 2025
|
||||||
|
**Version:** 1.0.2
|
||||||
|
**Package Size:** 396 KB
|
||||||
|
**Git Tag:** v1.0.2
|
||||||
|
|
||||||
|
## Download
|
||||||
|
|
||||||
|
**File:** `wc-tier-and-package-prices-1.0.2.zip`
|
||||||
|
|
||||||
|
### Checksums
|
||||||
|
|
||||||
|
**SHA256:**
|
||||||
|
```
|
||||||
|
c1a5339da10b3625156b8fff4ec848e4a1318d6edc497bd5026cfe0a3ef39daa
|
||||||
|
```
|
||||||
|
|
||||||
|
**MD5:**
|
||||||
|
```
|
||||||
|
830f443ce4b65e2ca9cfede3257bc4f5
|
||||||
|
```
|
||||||
|
|
||||||
|
## What's New in 1.0.2
|
||||||
|
|
||||||
|
### Major Changes
|
||||||
|
- ✅ **Settings Migrated to WooCommerce Settings Page**
|
||||||
|
- Settings now appear as a dedicated tab: **WooCommerce > Settings > Tier & Package Prices**
|
||||||
|
- Removed standalone submenu for better integration
|
||||||
|
- Consistent UI with native WooCommerce settings
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
- 🔄 Uses WooCommerce's native settings API (WC_Settings_Page)
|
||||||
|
- 🎨 Better integration with WooCommerce admin interface
|
||||||
|
- 💾 Automatic settings persistence via WooCommerce
|
||||||
|
- 🌍 Updated all translations with new settings strings
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
- ✨ WC_TPP_Settings class for proper WooCommerce integration
|
||||||
|
- 📝 9 new translatable strings in all languages
|
||||||
|
- 🔧 Enhanced tooltips and descriptions for better UX
|
||||||
|
|
||||||
|
### Technical Changes
|
||||||
|
- Implemented `woocommerce_get_settings_pages` filter hook
|
||||||
|
- Uses `WC_Admin_Settings` for rendering and saving
|
||||||
|
- Removed custom Twig settings template
|
||||||
|
- Updated all translation files to version 1.0.2
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- ❌ Standalone settings submenu (WooCommerce > Tier & Package Prices)
|
||||||
|
- ❌ Custom settings template (templates/admin/settings-page.twig)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Download the ZIP file: `wc-tier-and-package-prices-1.0.2.zip`
|
||||||
|
2. Log in to your WordPress admin panel
|
||||||
|
3. Navigate to **Plugins > Add New > Upload Plugin**
|
||||||
|
4. Choose the downloaded ZIP file
|
||||||
|
5. Click **Install Now**
|
||||||
|
6. After installation, click **Activate Plugin**
|
||||||
|
7. Go to **WooCommerce > Settings > Tier & Package Prices** to configure
|
||||||
|
|
||||||
|
### Upgrade from 1.0.1
|
||||||
|
|
||||||
|
This is a **minor update** with improved settings integration. No data migration needed.
|
||||||
|
|
||||||
|
**Steps:**
|
||||||
|
1. Deactivate the current version
|
||||||
|
2. Upload and activate version 1.0.2
|
||||||
|
3. Your existing settings will be automatically preserved
|
||||||
|
4. Settings location changed: Now under **WooCommerce > Settings** tab
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
- **WordPress:** 6.0 or higher
|
||||||
|
- **PHP:** 7.4 or higher
|
||||||
|
- **WooCommerce:** 8.0 or higher
|
||||||
|
|
||||||
|
## Translation Updates
|
||||||
|
|
||||||
|
All translation files updated with new strings:
|
||||||
|
|
||||||
|
### New Translations (9 new strings)
|
||||||
|
1. "General" - Settings section
|
||||||
|
2. "Tier & Package Prices Settings" - Section title
|
||||||
|
3. "Configure tier pricing and package pricing options..." - Description
|
||||||
|
4. "Allow quantity-based pricing tiers..." - Tooltip
|
||||||
|
5. "Allow fixed-price packages..." - Tooltip
|
||||||
|
6. "Display the pricing table to customers..." - Tooltip
|
||||||
|
7. "Choose where to display the pricing table..." - Description
|
||||||
|
8. "Before Add to Cart Button" - Option
|
||||||
|
9. "After Add to Cart Button" - Option
|
||||||
|
|
||||||
|
### Languages Included
|
||||||
|
- 🇺🇸 **English (US)** - en_US - Fully updated
|
||||||
|
- 🇩🇪 **German (Germany)** - de_DE - Fully updated (formal "Sie")
|
||||||
|
- 🇨🇭 **German (Switzerland, Informal)** - de_CH_informal - Fully updated (informal "du")
|
||||||
|
|
||||||
|
## Package Contents
|
||||||
|
|
||||||
|
The installation package includes:
|
||||||
|
|
||||||
|
### Core Files
|
||||||
|
- `wc-tier-and-package-prices.php` (v1.0.2)
|
||||||
|
- `composer.json` - Updated to 1.0.2
|
||||||
|
- `CHANGELOG.md` - Full version history
|
||||||
|
|
||||||
|
### New/Modified Files
|
||||||
|
- `includes/class-wc-tpp-settings.php` ✨ NEW
|
||||||
|
- `includes/class-wc-tpp-admin.php` - Updated
|
||||||
|
- All translation files (.po/.mo) - Updated
|
||||||
|
|
||||||
|
### Complete Directory Structure
|
||||||
|
```
|
||||||
|
wc-tier-and-package-prices/
|
||||||
|
├── assets/ # CSS and JavaScript
|
||||||
|
│ ├── css/
|
||||||
|
│ └── js/
|
||||||
|
├── includes/ # PHP classes
|
||||||
|
│ ├── class-wc-tpp-admin.php
|
||||||
|
│ ├── class-wc-tpp-cart.php
|
||||||
|
│ ├── class-wc-tpp-frontend.php
|
||||||
|
│ ├── class-wc-tpp-product-meta.php
|
||||||
|
│ ├── class-wc-tpp-settings.php ✨ NEW
|
||||||
|
│ └── class-wc-tpp-template-loader.php
|
||||||
|
├── languages/ # Translation files (all updated)
|
||||||
|
│ ├── wc-tier-package-prices-de_CH_informal.po/mo
|
||||||
|
│ ├── wc-tier-package-prices-de_DE.po/mo
|
||||||
|
│ ├── wc-tier-package-prices-en_US.po/mo
|
||||||
|
│ └── wc-tier-package-prices.pot
|
||||||
|
├── templates/ # Twig templates
|
||||||
|
│ ├── admin/
|
||||||
|
│ │ ├── package-row.twig
|
||||||
|
│ │ └── tier-row.twig
|
||||||
|
│ └── frontend/
|
||||||
|
│ ├── package-pricing-display.twig
|
||||||
|
│ ├── pricing-table.twig
|
||||||
|
│ └── tier-pricing-table.twig
|
||||||
|
├── vendor/ # Composer dependencies
|
||||||
|
│ └── twig/twig/ (v3.22.2)
|
||||||
|
├── CHANGELOG.md
|
||||||
|
├── README.md
|
||||||
|
└── composer.json
|
||||||
|
```
|
||||||
|
|
||||||
|
## Features (Complete List)
|
||||||
|
|
||||||
|
### Tier Pricing
|
||||||
|
- ✅ Quantity-based discount tiers
|
||||||
|
- ✅ Automatic price calculation
|
||||||
|
- ✅ Volume discount display
|
||||||
|
|
||||||
|
### Package Pricing
|
||||||
|
- ✅ Fixed-price bundles
|
||||||
|
- ✅ Custom package labels
|
||||||
|
- ✅ Multiple package options per product
|
||||||
|
|
||||||
|
### Admin Features
|
||||||
|
- ✅ **WooCommerce Settings integration** (NEW in 1.0.2)
|
||||||
|
- ✅ Easy-to-use product meta boxes
|
||||||
|
- ✅ Configurable display positions
|
||||||
|
- ✅ Native WooCommerce UI
|
||||||
|
|
||||||
|
### Frontend Features
|
||||||
|
- ✅ Beautiful pricing tables (Twig templates)
|
||||||
|
- ✅ Real-time cart updates
|
||||||
|
- ✅ Responsive design
|
||||||
|
- ✅ 3 languages supported
|
||||||
|
|
||||||
|
## Migration Notes
|
||||||
|
|
||||||
|
### Settings Location Changed
|
||||||
|
**Old Location:** WooCommerce > Tier & Package Prices
|
||||||
|
**New Location:** WooCommerce > Settings > Tier & Package Prices
|
||||||
|
|
||||||
|
All your existing settings are automatically preserved and will appear in the new location.
|
||||||
|
|
||||||
|
### Benefits of New Location
|
||||||
|
1. ✅ Better discoverability - users expect settings under Settings
|
||||||
|
2. ✅ Consistent with WooCommerce patterns
|
||||||
|
3. ✅ Native WooCommerce UI/UX
|
||||||
|
4. ✅ Better mobile support
|
||||||
|
5. ✅ Follows WordPress/WooCommerce best practices
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
- **Documentation:** See README.md and USAGE_EXAMPLES.md
|
||||||
|
- **Changelog:** See CHANGELOG.md for detailed changes
|
||||||
|
- **Issues:** https://src.bundespruefstelle.ch/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.
|
||||||
BIN
releases/wc-tier-and-package-prices-1.0.2.zip
Normal file
BIN
releases/wc-tier-and-package-prices-1.0.2.zip
Normal file
Binary file not shown.
1
releases/wc-tier-and-package-prices-1.0.2.zip.md5
Normal file
1
releases/wc-tier-and-package-prices-1.0.2.zip.md5
Normal file
@@ -0,0 +1 @@
|
|||||||
|
830f443ce4b65e2ca9cfede3257bc4f5 wc-tier-and-package-prices-1.0.2.zip
|
||||||
1
releases/wc-tier-and-package-prices-1.0.2.zip.sha256
Normal file
1
releases/wc-tier-and-package-prices-1.0.2.zip.sha256
Normal file
@@ -0,0 +1 @@
|
|||||||
|
c1a5339da10b3625156b8fff4ec848e4a1318d6edc497bd5026cfe0a3ef39daa wc-tier-and-package-prices-1.0.2.zip
|
||||||
@@ -3,13 +3,17 @@
|
|||||||
#
|
#
|
||||||
# @package WC_Tier_Package_Prices
|
# @package WC_Tier_Package_Prices
|
||||||
# @var array packages
|
# @var array packages
|
||||||
|
# @var bool restrict_to_packages
|
||||||
#}
|
#}
|
||||||
<div class="wc-tpp-package-pricing-table">
|
<div class="wc-tpp-package-pricing-table{% if restrict_to_packages %} wc-tpp-restricted-mode{% endif %}">
|
||||||
<h3>{{ 'Package Deals'|__('wc-tier-package-prices') }}</h3>
|
<h3>{{ 'Package Deals'|__('wc-tier-package-prices') }}</h3>
|
||||||
|
{% if restrict_to_packages %}
|
||||||
|
<p class="wc-tpp-restriction-notice">{{ 'Choose a package size below'|__('wc-tier-package-prices') }}</p>
|
||||||
|
{% endif %}
|
||||||
<div class="wc-tpp-packages">
|
<div class="wc-tpp-packages">
|
||||||
{% for index, package in packages %}
|
{% for index, package in packages %}
|
||||||
{% set price_per_unit = package.qty > 0 ? package.price / package.qty : 0 %}
|
{% set price_per_unit = package.qty > 0 ? package.price / package.qty : 0 %}
|
||||||
<div class="wc-tpp-package" data-qty="{{ package.qty|esc_attr }}" data-price="{{ package.price|esc_attr }}">
|
<div class="wc-tpp-package{% if restrict_to_packages %} wc-tpp-package-selectable{% endif %}" data-qty="{{ package.qty|esc_attr }}" data-price="{{ package.price|esc_attr }}">
|
||||||
<div class="wc-tpp-package-header">
|
<div class="wc-tpp-package-header">
|
||||||
{% if package.label is not empty %}
|
{% if package.label is not empty %}
|
||||||
<h4>{{ package.label|esc_html }}</h4>
|
<h4>{{ package.label|esc_html }}</h4>
|
||||||
|
|||||||
@@ -12,6 +12,6 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if packages is not empty and get_option('wc_tpp_enable_package_pricing') == 'yes' %}
|
{% if packages is not empty and get_option('wc_tpp_enable_package_pricing') == 'yes' %}
|
||||||
{% include 'frontend/package-pricing-display.twig' with {'packages': packages} %}
|
{% include 'frontend/package-pricing-display.twig' with {'packages': packages, 'restrict_to_packages': restrict_to_packages|default(false)} %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* Plugin Name: WooCommerce Tier and Package Prices
|
* Plugin Name: WooCommerce Tier and Package Prices
|
||||||
* Plugin URI: https://src.bundespruefstelle.ch/wc-tier-package-prices
|
* Plugin URI: https://src.bundespruefstelle.ch/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.0.2
|
* Version: 1.1.0
|
||||||
* 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
|
||||||
@@ -22,7 +22,7 @@ if (!defined('ABSPATH')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Define plugin constants
|
// Define plugin constants
|
||||||
define('WC_TPP_VERSION', '1.0.2');
|
define('WC_TPP_VERSION', '1.1.0');
|
||||||
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||||
define('WC_TPP_PLUGIN_URL', plugin_dir_url(__FILE__));
|
define('WC_TPP_PLUGIN_URL', plugin_dir_url(__FILE__));
|
||||||
define('WC_TPP_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
define('WC_TPP_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
||||||
|
|||||||
Reference in New Issue
Block a user