B2B catalog mode
Der Katalogmodus verwandelt den Shop in einen Katalog ohne Kaufmöglichkeit. Verbergen Sie Preise, ersetzen Sie Buttons durch Meldungen oder leiten Sie zu einer Angebotsanfrage weiter. Konzipiert für B2B-Shops mit individueller Preisgestaltung.
Konfiguration
Section titled “Konfiguration”Gehen Sie zu WooCommerce > Einstellungen > Polski PRO > Katalogmodus und aktivieren Sie das Modul (Option polski_catalog).
Haupteinstellungen
Section titled “Haupteinstellungen”| Einstellung | Datenbankoption | Standardwert | Beschreibung |
|---|---|---|---|
| Katalogmodus aktivieren | polski_catalog | Nein | Aktiviert den Katalogmodus |
| Preise verbergen | polski_catalog_hide_prices | Ja | Entfernt die Preisanzeige |
| Warenkorb-Button verbergen | polski_catalog_hide_cart | Ja | Entfernt den Button “In den Warenkorb” |
| Ersatztext für den Preis | polski_catalog_price_text | ”Zapytaj o cenę” | Anstelle des Preises angezeigter Text |
| Produkthinweis | polski_catalog_notice | "" | Auf der Produktseite angezeigter Hinweis |
| Zu RFQ weiterleiten | polski_catalog_redirect_rfq | Nein | Leitet zum Formular für die Angebotsanfrage weiter |
| Bedingter Modus | polski_catalog_conditional | all | all, guests, roles |
Bedingter Modus
Section titled “Bedingter Modus”Der Katalogmodus kann aktiv sein:
- Für alle (
all) - jeder sieht einen Katalog ohne Preise - Nur für Gäste (
guests) - angemeldete Kunden sehen Preise und können kaufen - Für ausgewählte Rollen (
roles) - Katalog nur für ausgewählte WordPress-Rollen aktiv
Der bedingte Modus “Nur für Gäste” ist in B2B-Modellen beliebt, bei denen der Großhändler vor der Preisfreigabe eine Kontoregistrierung verlangt.
// Przykład: własna logika warunkowaadd_filter('polski_pro/catalog/is_active', function (bool $is_active): bool { // Wyłącz tryb katalogowy dla klientów z co najmniej 5 zamówieniami if (is_user_logged_in()) { $order_count = wc_get_customer_order_count(get_current_user_id()); if ($order_count >= 5) { return false; } } return $is_active;});Funktionsweise
Section titled “Funktionsweise”Preise verbergen
Section titled “Preise verbergen”Das Modul klinkt sich in den Filter woocommerce_get_price_html ein und ersetzt das Preis-HTML durch den konfigurierten Ersatztext.
/** * Filtruje tekst zastępczy ceny w trybie katalogowym. * * @param string $replacement Tekst zastępczy * @param \WC_Product $product Obiekt produktu */apply_filters('polski_pro/catalog/price_replacement', string $replacement, \WC_Product $product): string;Beispiel - unterschiedlicher Text für Kategorien:
add_filter('polski_pro/catalog/price_replacement', function (string $replacement, \WC_Product $product): string { if (has_term('premium', 'product_cat', $product->get_id())) { return '<span class="price-inquiry">Cena ustalana indywidualnie</span>'; } return $replacement;}, 10, 2);Käufe blockieren
Section titled “Käufe blockieren”Das Modul verwendet den Filter woocommerce_is_purchasable, um die Kaufmöglichkeit zu blockieren:
/** * Filtruje, czy produkt jest dostępny do zakupu w trybie katalogowym. * * @param bool $purchasable Czy produkt jest dostępny do zakupu * @param \WC_Product $product Obiekt produktu */apply_filters('polski_pro/catalog/is_purchasable', bool $purchasable, \WC_Product $product): bool;Beispiel - Kauf ausgewählter Produkte erlauben:
add_filter('polski_pro/catalog/is_purchasable', function (bool $purchasable, \WC_Product $product): bool { $always_purchasable = [101, 102, 103]; // ID produktów zawsze dostępnych if (in_array($product->get_id(), $always_purchasable, true)) { return true; } return $purchasable;}, 10, 2);Hinweis auf der Produktseite
Section titled “Hinweis auf der Produktseite”Wenn die Option polski_catalog_notice gesetzt ist, wird auf der Einzelproduktseite ein Hinweis angezeigt, der den Kunden über den Katalogmodus informiert.
Beispielhinweis:
Um den Preis dieses Produkts zu erfahren, kontaktieren Sie unser Vertriebsteam oder füllen Sie das Formular für die Angebotsanfrage aus.
Integration mit dem Modul für Angebotsanfragen
Section titled “Integration mit dem Modul für Angebotsanfragen”Wenn die Option polski_catalog_redirect_rfq aktiviert ist, leitet der Ersatz-Button auf der Produktseite zum Formular für die Angebotsanfrage weiter (RFQ-Modul). Die Integration umfasst:
- Button “Nach Preis fragen” anstelle von “In den Warenkorb”
- Automatische Übergabe der Produkt-ID an das RFQ-Formular
- Vorausfüllen des Produktnamens im Formular
- Rückkehr zum Produkt nach dem Absenden der Anfrage
Damit die Integration funktioniert, müssen beide Module - Katalog und RFQ - aktiv sein.
Verborgene Elemente
Section titled “Verborgene Elemente”Neben den Preisen und dem Warenkorb-Button verbirgt das Modul automatisch:
| Element | WooCommerce-Hook | Effekt |
|---|---|---|
| Button “In den Warenkorb” | woocommerce_is_purchasable | Produkt als nicht kaufbar markiert |
| Preis | woocommerce_get_price_html | Preis-HTML durch Text ersetzt |
| Warenkorb-Symbol im Header | polski_pro/catalog/hide_cart_icon | Verbirgt das Mini-Warenkorb-Symbol |
| Warenkorbseite | template_redirect | Weiterleitung von /cart/ zur Startseite |
| Kassenseite | template_redirect | Weiterleitung von /checkout/ zur Startseite |
Selektives Verbergen
Section titled “Selektives Verbergen”Nicht alle Elemente müssen gleichzeitig verborgen werden. Jede Option kann unabhängig aktiviert oder deaktiviert werden. Zum Beispiel:
- Preise verbergen, aber den Warenkorb-Button behalten (Kunde kauft zum “unbekannten Preis” - Kontakt nach der Bestellung)
- Warenkorb-Button verbergen, aber Preise anzeigen (Kunde sieht Preise, muss aber für den Kauf anfragen)
- Alles verbergen (voller Katalogmodus)
Produkte und Kategorien ausschließen
Section titled “Produkte und Kategorien ausschließen”Produkte ausschließen
Section titled “Produkte ausschließen”Ausgewählte Produkte können im Produkteditor vom Katalogmodus ausgeschlossen werden, im Tab Polski PRO > Katalogmodus, indem die Option “Vom Katalogmodus ausschließen” aktiviert wird.
Kategorien ausschließen
Section titled “Kategorien ausschließen”/** * Filtruje kategorie wykluczone z trybu katalogowego. * * @param array $excluded_categories Tablica ID kategorii */apply_filters('polski_pro/catalog/excluded_categories', array $excluded_categories): array;Beispiel:
add_filter('polski_pro/catalog/excluded_categories', function (array $excluded_categories): array { $excluded_categories[] = 15; // "Akcesoria" - zawsze dostępne do zakupu $excluded_categories[] = 28; // "Outlet" return $excluded_categories;});CSS-Hilfsklassen
Section titled “CSS-Hilfsklassen”Das Modul fügt <body> CSS-Klassen hinzu, um das Styling zu erleichtern:
| Klasse | Wann hinzugefügt |
|---|---|
polski-catalog-mode | Der Katalogmodus ist aktiv |
polski-catalog-prices-hidden | Die Preise sind verborgen |
polski-catalog-cart-hidden | Der Warenkorb-Button ist verborgen |
CSS-Beispiel:
.polski-catalog-mode .price { display: none; /* Dodatkowe ukrycie ceny, jeśli motyw nie respektuje filtra */}
.polski-catalog-mode .single_add_to_cart_button { background-color: #0073aa; content: "Zapytaj o cenę";}Fehlerbehebung
Section titled “Fehlerbehebung”Preise werden trotz aktiviertem Katalogmodus weiterhin angezeigt
Einige Themes verwenden nicht standardisierte Methoden zur Preisanzeige und umgehen dabei den Filter woocommerce_get_price_html. Verwenden Sie die CSS-Klassen .polski-catalog-prices-hidden .price { display: none; } als Absicherung.
Kunde kann das Produkt über eine direkte URL in den Warenkorb legen
Das Modul blockiert dies auf der Ebene des Filters woocommerce_is_purchasable. Wenn das Problem weiterhin besteht, prüfen Sie, ob ein anderes Plugin diesen Filter mit höherer Priorität überschreibt.
Der bedingte Modus funktioniert mit Cache nicht richtig Caching-Plugins können unabhängig vom Anmeldestatus die zwischengespeicherte Version ausliefern. Konfigurieren Sie das Caching-Plugin so, dass es den Cache für angemeldete und für gast-Benutzer trennt.
Nächste Schritte
Section titled “Nächste Schritte”- Probleme melden: GitHub Issues
- Verwandte Module: Angebotsanfrage