Refactor to PSR-4: rename files and switch namespace

- Rename files to PascalCase: Product_Type → ProductType, Cart_Handler →
  CartHandler, Product_Selector → ProductSelector, Stock_Manager →
  StockManager, Admin/Product_Data → Admin/ProductData
- Switch namespace from WC_Composable_Product to Magdev\WcComposableProduct
- Update all cross-references in PHP, CSS, JS, translations, and docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 12:35:02 +01:00
parent dd5965ae4c
commit ea2261d8d7
21 changed files with 281 additions and 281 deletions

View File

@@ -36,13 +36,13 @@ wc-composable-product/
├── cache/ # Twig template cache (writable, gitignored)
├── includes/
│ ├── Admin/
│ │ ├── Product_Data.php # Product data tab & meta boxes
│ │ ├── ProductData.php # Product data tab & meta boxes
│ │ └── Settings.php # WooCommerce settings integration
│ ├── Cart_Handler.php # Add-to-cart & cart display logic (with stock validation)
│ ├── CartHandler.php # Add-to-cart & cart display logic (with stock validation)
│ ├── Plugin.php # Main plugin class (Singleton)
│ ├── Product_Selector.php # Frontend product selector renderer (with stock info)
│ ├── Product_Type.php # Custom WC_Product extension
│ └── Stock_Manager.php # Stock management & inventory tracking
│ ├── ProductSelector.php # Frontend product selector renderer (with stock info)
│ ├── ProductType.php # Custom WC_Product extension
│ └── StockManager.php # Stock management & inventory tracking
├── languages/ # Translation files (.pot, .po, .mo)
├── releases/ # Release packages (gitignored)
├── templates/
@@ -61,29 +61,29 @@ wc-composable-product/
- Registers hooks, manages asset enqueuing, provides template rendering API
- Settings.php is lazy-loaded via `woocommerce_get_settings_pages` filter (not in `includes()`) to avoid "Class WC_Settings_Page not found" errors
2. **Product_Type.php** — Custom WooCommerce product type (`composable`)
2. **ProductType.php** — Custom WooCommerce product type (`composable`)
- Extends `WC_Product`
- Queries available products via `get_available_products()` using `WP_Query`
- **Critical**: Uses `tax_query` with `product_type` taxonomy to exclude composable products (NOT `meta_query` — WooCommerce stores product types as taxonomy terms)
- Handles variable products by expanding them into individual variations via `get_children()`
- Products are filtered by `is_purchasable()` only (not `is_in_stock()` — stock is shown visually and validated at add-to-cart)
3. **Cart_Handler.php** — Cart integration
3. **CartHandler.php** — Cart integration
- Validates selections, stores selected products in cart meta, calculates pricing
- Uses `woocommerce_is_purchasable` filter to hide default add-to-cart button for composable products
- Price recalculation uses a static `$already_calculated` flag per request (no persistent session flags — `set_price()` is in-memory only)
4. **Product_Selector.php** — Frontend renderer
4. **ProductSelector.php** — Frontend renderer
- Renders Twig template with product data, stock info, and pre-formatted price HTML via `wc_price()`
5. **Admin/Product_Data.php** — Product edit interface
5. **Admin/ProductData.php** — Product edit interface
- Adds "Composable Options" tab with category/tag/SKU selection fields
- Saved meta: `_composable_selection_limit`, `_composable_pricing_mode`, `_composable_criteria_type`, `_composable_categories`, `_composable_tags`, `_composable_skus`
6. **Admin/Settings.php** — Global settings (extends `WC_Settings_Page`)
- Default selection limit, pricing mode, display preferences
7. **Stock_Manager.php** — Inventory management
7. **StockManager.php** — Inventory management
- Stock validation, automatic deduction on order completion, restoration on cancellation
- Prevents WooCommerce double-deduction via `woocommerce_can_reduce_order_stock`
@@ -91,11 +91,11 @@ wc-composable-product/
**Product Creation:** Admin selects "Composable product" type → configures criteria/limits/pricing → metadata saved as `_composable_*` fields
**Frontend Display:** `Cart_Handler::render_product_selector()``Product_Type::get_available_products()` queries products via taxonomy/SKU → `Product_Selector::render()` passes data to Twig template → JavaScript handles selection UI
**Frontend Display:** `CartHandler::render_product_selector()``ProductType::get_available_products()` queries products via taxonomy/SKU → `ProductSelector::render()` passes data to Twig template → JavaScript handles selection UI
**Add to Cart:** Customer selects products → JS validates limit → AJAX request with `composable_products[]` → server-side validation (selection + stock) → selections stored in cart item data → price calculated per pricing mode
**Order Processing:** Order completed → `Stock_Manager` deducts inventory → order notes added for audit → on cancellation/refund: stock restored
**Order Processing:** Order completed → `StockManager` deducts inventory → order notes added for audit → on cancellation/refund: stock restored
### Key Hooks

View File

@@ -1,7 +1,7 @@
/**
* Admin Styles for Composable Products
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
/* Hide composable panel by default */

View File

@@ -1,7 +1,7 @@
/**
* Frontend Styles for Composable Products
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
.wc-composable-product-selector {

View File

@@ -1,7 +1,7 @@
/**
* Admin JavaScript for Composable Products
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
(function($) {

View File

@@ -1,7 +1,7 @@
/**
* Frontend JavaScript for Composable Products
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
(function($) {

View File

@@ -15,7 +15,7 @@
},
"autoload": {
"psr-4": {
"WC_Composable_Product\\": "includes/"
"Magdev\\WcComposableProduct\\": "includes/"
}
},
"config": {

View File

@@ -2,17 +2,17 @@
/**
* Product Data Tab
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
namespace WC_Composable_Product\Admin;
namespace Magdev\WcComposableProduct\Admin;
defined('ABSPATH') || exit;
/**
* Product Data Tab Class
*/
class Product_Data {
class ProductData {
/**
* Constructor
*/

View File

@@ -2,10 +2,10 @@
/**
* Admin Settings
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
namespace WC_Composable_Product\Admin;
namespace Magdev\WcComposableProduct\Admin;
defined('ABSPATH') || exit;

View File

@@ -2,10 +2,10 @@
/**
* Cart Handler
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
namespace WC_Composable_Product;
namespace Magdev\WcComposableProduct;
defined('ABSPATH') || exit;
@@ -14,11 +14,11 @@ defined('ABSPATH') || exit;
*
* Handles adding composable products to cart and calculating prices
*/
class Cart_Handler {
class CartHandler {
/**
* Stock manager instance
*
* @var Stock_Manager
* @var StockManager
*/
private $stock_manager;
@@ -26,7 +26,7 @@ class Cart_Handler {
* Constructor
*/
public function __construct() {
$this->stock_manager = new Stock_Manager();
$this->stock_manager = new StockManager();
add_filter('woocommerce_add_to_cart_validation', [$this, 'validate_add_to_cart'], 10, 3);
add_filter('woocommerce_add_cart_item_data', [$this, 'add_cart_item_data'], 10, 2);
@@ -59,7 +59,7 @@ class Cart_Handler {
global $product;
if ($product && $product->get_type() === 'composable') {
Product_Selector::render($product);
ProductSelector::render($product);
}
}

View File

@@ -2,10 +2,10 @@
/**
* Main Plugin Class
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
namespace WC_Composable_Product;
namespace Magdev\WcComposableProduct;
defined('ABSPATH') || exit;
@@ -98,15 +98,15 @@ class Plugin {
private function includes() {
// Note: Settings.php is NOT included here because it extends WC_Settings_Page
// which isn't loaded until later. It's included in add_settings_page() instead.
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/Admin/Product_Data.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/Product_Type.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/Stock_Manager.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/Cart_Handler.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/Product_Selector.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/Admin/ProductData.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/ProductType.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/StockManager.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/CartHandler.php';
require_once WC_COMPOSABLE_PRODUCT_PATH . 'includes/ProductSelector.php';
// Initialize components
new Admin\Product_Data();
new Cart_Handler();
new Admin\ProductData();
new CartHandler();
}
/**
@@ -129,7 +129,7 @@ class Plugin {
*/
public function product_class($classname, $product_type) {
if ($product_type === 'composable') {
$classname = 'WC_Composable_Product\Product_Type';
$classname = 'Magdev\WcComposableProduct\ProductType';
}
return $classname;
}

View File

@@ -2,10 +2,10 @@
/**
* Product Selector
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
namespace WC_Composable_Product;
namespace Magdev\WcComposableProduct;
defined('ABSPATH') || exit;
@@ -14,11 +14,11 @@ defined('ABSPATH') || exit;
*
* Handles rendering the product selection interface
*/
class Product_Selector {
class ProductSelector {
/**
* Render product selector
*
* @param Product_Type $product Composable product
* @param ProductType $product Composable product
*/
public static function render($product) {
if (!$product || $product->get_type() !== 'composable') {
@@ -34,7 +34,7 @@ class Product_Selector {
$show_total = get_option('wc_composable_show_total', 'yes') === 'yes';
// Get stock manager for stock information
$stock_manager = new Stock_Manager();
$stock_manager = new StockManager();
// Prepare product data for template
$products_data = [];

View File

@@ -2,17 +2,17 @@
/**
* Composable Product Type
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
namespace WC_Composable_Product;
namespace Magdev\WcComposableProduct;
defined('ABSPATH') || exit;
/**
* Composable Product Type Class
*/
class Product_Type extends \WC_Product {
class ProductType extends \WC_Product {
/**
* Product type
*

View File

@@ -2,10 +2,10 @@
/**
* Stock Manager
*
* @package WC_Composable_Product
* @package Magdev\WcComposableProduct
*/
namespace WC_Composable_Product;
namespace Magdev\WcComposableProduct;
defined('ABSPATH') || exit;
@@ -14,7 +14,7 @@ defined('ABSPATH') || exit;
*
* Handles stock management for composable products
*/
class Stock_Manager {
class StockManager {
/**
* Constructor
*/

View File

@@ -91,7 +91,7 @@ msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen."
msgid "Composable product"
msgstr "Zusammenstellbares Produkt"
#: includes/Product_Selector.php, templates/product-selector.twig
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr "Wählen Sie Ihre Produkte"
@@ -111,115 +111,115 @@ msgstr "Gesamtpreis:"
msgid "Add to Cart"
msgstr "In den Warenkorb"
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr "Bitte wählen Sie mindestens ein Produkt aus."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr "Sie können maximal %d Produkte auswählen."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Selected Products"
msgstr "Ausgewählte Produkte"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr "Zusammenstellungsoptionen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr "Auswahllimit"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr "Preismodus"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr "Wie der Preis berechnet wird."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr "Festpreis"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr "Geben Sie den Festpreis für dieses zusammenstellbare Produkt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr "Globalen Standard verwenden"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr "Auswahlkriterien"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr "Wie verfügbare Produkte ausgewählt werden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr "Nach Kategorie"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr "Nach Schlagwort"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr "Nach Artikelnummer"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr "Kategorien auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr "Produktkategorien auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr "Schlagwörter auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr "Produkt-Artikelnummern"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr "Geben Sie Produkt-Artikelnummern durch Kommas getrennt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "ART-1, ART-2, ART-3"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" ist nicht an Lager und kann nicht ausgewählt werden."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Nur %2$d von \"%1$s\" sind an Lager verfügbar."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %3$d)"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)"
@@ -243,7 +243,7 @@ msgstr "An Lager"
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die Produktkriterien im Admin-Bereich."
#: includes/Admin/Settings.php, includes/Admin/Product_Data.php
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
msgid "Include Non-Public Products"
msgstr "Nicht-öffentliche Produkte einbeziehen"
@@ -251,14 +251,14 @@ msgstr "Nicht-öffentliche Produkte einbeziehen"
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Yes"
msgstr "Ja"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "No"
msgstr "Nein"

View File

@@ -91,7 +91,7 @@ msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen."
msgid "Composable product"
msgstr "Zusammenstellbares Produkt"
#: includes/Product_Selector.php, templates/product-selector.twig
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr "Wähle deine Produkte"
@@ -111,115 +111,115 @@ msgstr "Gesamtpreis:"
msgid "Add to Cart"
msgstr "In den Warenkorb"
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr "Bitte wähle mindestens ein Produkt aus."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr "Du kannst maximal %d Produkte auswählen."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Selected Products"
msgstr "Ausgewählte Produkte"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr "Zusammenstellungsoptionen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr "Auswahllimit"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr "Preismodus"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr "Wie der Preis berechnet wird."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr "Festpreis"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr "Gib den Festpreis für dieses zusammenstellbare Produkt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr "Globalen Standard verwenden"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr "Auswahlkriterien"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr "Wie verfügbare Produkte ausgewählt werden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr "Nach Kategorie"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr "Nach Schlagwort"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr "Nach Artikelnummer"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr "Kategorien auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr "Produktkategorien auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr "Schlagwörter auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr "Produkt-Artikelnummern"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr "Gib Produkt-Artikelnummern durch Kommas getrennt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "ART-1, ART-2, ART-3"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" ist nicht an Lager und kann nicht ausgewählt werden."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Nur %2$d von \"%1$s\" sind an Lager verfügbar."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %3$d)"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)"
@@ -243,7 +243,7 @@ msgstr "An Lager"
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die Produktkriterien im Admin-Bereich."
#: includes/Admin/Settings.php, includes/Admin/Product_Data.php
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
msgid "Include Non-Public Products"
msgstr "Nicht-öffentliche Produkte einbeziehen"
@@ -251,14 +251,14 @@ msgstr "Nicht-öffentliche Produkte einbeziehen"
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Yes"
msgstr "Ja"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "No"
msgstr "Nein"

View File

@@ -91,7 +91,7 @@ msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen."
msgid "Composable product"
msgstr "Zusammenstellbares Produkt"
#: includes/Product_Selector.php, templates/product-selector.twig
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr "Wählen Sie Ihre Produkte"
@@ -111,115 +111,115 @@ msgstr "Gesamtpreis:"
msgid "Add to Cart"
msgstr "In den Warenkorb"
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr "Bitte wählen Sie mindestens ein Produkt aus."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr "Sie können maximal %d Produkte auswählen."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Selected Products"
msgstr "Ausgewählte Produkte"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr "Zusammenstellungsoptionen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr "Auswahllimit"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr "Preismodus"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr "Wie der Preis berechnet wird."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr "Festpreis"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr "Geben Sie den Festpreis für dieses zusammenstellbare Produkt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr "Globalen Standard verwenden"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr "Auswahlkriterien"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr "Wie verfügbare Produkte ausgewählt werden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr "Nach Kategorie"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr "Nach Schlagwort"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr "Nach Artikelnummer"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr "Kategorien auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr "Produktkategorien auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr "Schlagwörter auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr "Produkt-Artikelnummern"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr "Geben Sie Produkt-Artikelnummern durch Kommas getrennt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "ART-1, ART-2, ART-3"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" ist nicht auf Lager und kann nicht ausgewählt werden."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Nur %2$d von \"%1$s\" sind auf Lager verfügbar."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %3$d)"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)"
@@ -243,7 +243,7 @@ msgstr "Auf Lager"
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die Produktkriterien im Admin-Bereich."
#: includes/Admin/Settings.php, includes/Admin/Product_Data.php
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
msgid "Include Non-Public Products"
msgstr "Nicht-öffentliche Produkte einbeziehen"
@@ -251,14 +251,14 @@ msgstr "Nicht-öffentliche Produkte einbeziehen"
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Yes"
msgstr "Ja"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "No"
msgstr "Nein"

View File

@@ -91,7 +91,7 @@ msgstr "Den Gesamtpreis anzeigen, während Kunden Auswahlen treffen."
msgid "Composable product"
msgstr "Zusammenstellbares Produkt"
#: includes/Product_Selector.php, templates/product-selector.twig
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr "Wähle deine Produkte"
@@ -111,115 +111,115 @@ msgstr "Gesamtpreis:"
msgid "Add to Cart"
msgstr "In den Warenkorb"
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr "Bitte wähle mindestens ein Produkt aus."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr "Du kannst maximal %d Produkte auswählen."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr "Ein oder mehrere ausgewählte Produkte sind nicht verfügbar."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Selected Products"
msgstr "Ausgewählte Produkte"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr "Zusammenstellungsoptionen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr "Auswahllimit"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr "Maximale Anzahl der Artikel, die Kunden auswählen können. Leer lassen, um den globalen Standard zu verwenden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr "Preismodus"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr "Wie der Preis berechnet wird."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr "Festpreis"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr "Gib den Festpreis für dieses zusammenstellbare Produkt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr "Globalen Standard verwenden"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr "Auswahlkriterien"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr "Wie verfügbare Produkte ausgewählt werden."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr "Nach Kategorie"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr "Nach Schlagwort"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr "Nach Artikelnummer"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr "Kategorien auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr "Produktkategorien auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr "Schlagwörter auswählen"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr "Produkt-Schlagwörter auswählen, die einbezogen werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr "Produkt-Artikelnummern"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr "Gib Produkt-Artikelnummern durch Kommas getrennt ein."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "ART-1, ART-2, ART-3"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" ist nicht auf Lager und kann nicht ausgewählt werden."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Nur %2$d von \"%1$s\" sind auf Lager verfügbar."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Lagerbestand reduziert für \"%1$s\": -%2$d (verbleibend: %3$d)"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Lagerbestand wiederhergestellt für \"%1$s\": +%2$d (gesamt: %3$d)"
@@ -243,7 +243,7 @@ msgstr "Auf Lager"
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die Produktkriterien im Admin-Bereich."
#: includes/Admin/Settings.php, includes/Admin/Product_Data.php
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
msgid "Include Non-Public Products"
msgstr "Nicht-öffentliche Produkte einbeziehen"
@@ -251,14 +251,14 @@ msgstr "Nicht-öffentliche Produkte einbeziehen"
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr "Entwürfe und private Produkte in der Auswahl zusammenstellbarer Produkte anzeigen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen, nicht einzeln."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr "Entwürfe und private Produkte in der Auswahl zulassen. Nützlich, wenn Produkte nur als Teil einer Zusammenstellung verkauft werden sollen."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Yes"
msgstr "Ja"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "No"
msgstr "Nein"

View File

@@ -91,7 +91,7 @@ msgstr "Afficher le prix total pendant que les clients font leurs sélections."
msgid "Composable product"
msgstr "Produit composable"
#: includes/Product_Selector.php, templates/product-selector.twig
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr "Sélectionnez vos produits"
@@ -111,115 +111,115 @@ msgstr "Prix total :"
msgid "Add to Cart"
msgstr "Ajouter au panier"
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr "Veuillez sélectionner au moins un produit."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr "Vous pouvez sélectionner un maximum de %d produits."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr "Un ou plusieurs produits sélectionnés ne sont pas disponibles."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Selected Products"
msgstr "Produits sélectionnés"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr "Options de composition"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr "Limite de sélection"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr "Nombre maximum d'articles que les clients peuvent sélectionner. Laisser vide pour utiliser la valeur par défaut globale."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr "Mode de tarification"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr "Comment calculer le prix."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr "Prix fixe"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr "Entrez le prix fixe pour ce produit composable."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr "Utiliser la valeur par défaut globale"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr "Critères de sélection"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr "Comment sélectionner les produits disponibles."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr "Par catégorie"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr "Par étiquette"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr "Par référence"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr "Sélectionner les catégories"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr "Sélectionner les catégories de produits à inclure."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr "Sélectionner les étiquettes"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr "Sélectionner les étiquettes de produits à inclure."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr "Références des produits"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr "Entrez les références des produits séparées par des virgules."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "REF-1, REF-2, REF-3"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" est en rupture de stock et ne peut pas être sélectionné."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Seulement %2$d de \"%1$s\" sont disponibles en stock."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Stock réduit pour \"%1$s\": -%2$d (restant: %3$d)"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Stock restauré pour \"%1$s\": +%2$d (total: %3$d)"
@@ -243,7 +243,7 @@ msgstr "En stock"
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr "Aucun produit disponible pour la sélection. Veuillez configurer les critères de produit dans le panneau d'administration."
#: includes/Admin/Settings.php, includes/Admin/Product_Data.php
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
msgid "Include Non-Public Products"
msgstr "Inclure les produits non publics"
@@ -251,14 +251,14 @@ msgstr "Inclure les produits non publics"
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr "Autoriser les brouillons et les produits privés dans les sélections de produits composables. Utile lorsque les produits ne doivent être vendus que dans le cadre d'une composition, pas individuellement."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr "Autoriser les brouillons et les produits privés dans la sélection. Utile lorsque les produits ne doivent être vendus que dans le cadre d'une composition."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Yes"
msgstr "Oui"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "No"
msgstr "Non"

View File

@@ -91,7 +91,7 @@ msgstr "Visualizzare il prezzo totale mentre i clienti effettuano le selezioni."
msgid "Composable product"
msgstr "Prodotto componibile"
#: includes/Product_Selector.php, templates/product-selector.twig
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr "Seleziona i tuoi prodotti"
@@ -111,115 +111,115 @@ msgstr "Prezzo totale:"
msgid "Add to Cart"
msgstr "Aggiungi al carrello"
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr "Seleziona almeno un prodotto."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr "Puoi selezionare un massimo di %d prodotti."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr "Uno o più prodotti selezionati non sono disponibili."
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Selected Products"
msgstr "Prodotti selezionati"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr "Opzioni di composizione"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr "Limite di selezione"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr "Numero massimo di articoli che i clienti possono selezionare. Lasciare vuoto per utilizzare il valore predefinito globale."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr "Modalità di prezzo"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr "Come calcolare il prezzo."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr "Prezzo fisso"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr "Inserisci il prezzo fisso per questo prodotto componibile."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr "Usa predefinito globale"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr "Criteri di selezione"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr "Come selezionare i prodotti disponibili."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr "Per categoria"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr "Per etichetta"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr "Per codice articolo"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr "Seleziona categorie"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr "Selezionare le categorie di prodotti da includere."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr "Seleziona etichette"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr "Selezionare le etichette dei prodotti da includere."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr "Codici articolo prodotti"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr "Inserire i codici articolo dei prodotti separati da virgole."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr "COD-1, COD-2, COD-3"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr "\"%s\" è esaurito e non può essere selezionato."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr "Solo %2$d di \"%1$s\" sono disponibili in magazzino."
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr "Giacenza ridotta per \"%1$s\": -%2$d (rimanenti: %3$d)"
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr "Giacenza ripristinata per \"%1$s\": +%2$d (totale: %3$d)"
@@ -243,7 +243,7 @@ msgstr "Disponibile"
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr "Nessun prodotto disponibile per la selezione. Si prega di configurare i criteri del prodotto nel pannello di amministrazione."
#: includes/Admin/Settings.php, includes/Admin/Product_Data.php
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
msgid "Include Non-Public Products"
msgstr "Includi prodotti non pubblici"
@@ -251,14 +251,14 @@ msgstr "Includi prodotti non pubblici"
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr "Consenti la visualizzazione di bozze e prodotti privati nelle selezioni dei prodotti componibili. Utile quando i prodotti devono essere venduti solo come parte di una composizione, non singolarmente."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr "Consenti bozze e prodotti privati nella selezione. Utile quando i prodotti devono essere venduti solo come parte di una composizione."
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Yes"
msgstr "Sì"
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "No"
msgstr "No"

View File

@@ -90,7 +90,7 @@ msgstr ""
msgid "Composable product"
msgstr ""
#: includes/Product_Selector.php, templates/product-selector.twig
#: includes/ProductSelector.php, templates/product-selector.twig
msgid "Select Your Products"
msgstr ""
@@ -110,115 +110,115 @@ msgstr ""
msgid "Add to Cart"
msgstr ""
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Please select at least one product."
msgstr ""
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "You can select a maximum of %d products."
msgstr ""
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "One or more selected products are not available."
msgstr ""
#: includes/Cart_Handler.php
#: includes/CartHandler.php
msgid "Selected Products"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Composable Options"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Limit"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Maximum number of items customers can select. Leave empty to use global default."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Pricing Mode"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to calculate the price."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Fixed Price"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter the fixed price for this composable product."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Use global default"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Selection Criteria"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "How to select available products."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Category"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By Tag"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "By SKU"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Categories"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product categories to include."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select Tags"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Select product tags to include."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Product SKUs"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Enter product SKUs separated by commas."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "SKU-1, SKU-2, SKU-3"
msgstr ""
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "\"%s\" is out of stock and cannot be selected."
msgstr ""
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Only %2$d of \"%1$s\" are available in stock."
msgstr ""
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock reduced for \"%1$s\": -%2$d (remaining: %3$d)"
msgstr ""
#: includes/Stock_Manager.php
#: includes/StockManager.php
msgid "Stock restored for \"%1$s\": +%2$d (total: %3$d)"
msgstr ""
@@ -242,7 +242,7 @@ msgstr ""
msgid "No products available for selection. Please configure the product criteria in the admin panel."
msgstr ""
#: includes/Admin/Settings.php, includes/Admin/Product_Data.php
#: includes/Admin/Settings.php, includes/Admin/ProductData.php
msgid "Include Non-Public Products"
msgstr ""
@@ -250,14 +250,14 @@ msgstr ""
msgid "Allow draft and private products to appear in composable product selections. Useful when products should only be sold as part of a composition, not individually."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Allow draft and private products in the selection. Useful when products should only be sold as part of a composition."
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "Yes"
msgstr ""
#: includes/Admin/Product_Data.php
#: includes/Admin/ProductData.php
msgid "No"
msgstr ""

View File

@@ -60,7 +60,7 @@ function wc_composable_product_init() {
load_plugin_textdomain('wc-composable-product', false, dirname(WC_COMPOSABLE_PRODUCT_BASENAME) . '/languages');
// Initialize main plugin class
WC_Composable_Product\Plugin::instance();
Magdev\WcComposableProduct\Plugin::instance();
}
// Use woocommerce_init to ensure all WooCommerce classes including settings are loaded
add_action('woocommerce_init', 'wc_composable_product_init');