Przejdź do głównej zawartości

Tryb katalogowy B2B

Tryb katalogowy zamienia sklep w katalog bez możliwości zakupu. Ukryj ceny, zamień przyciski na komunikaty lub przekieruj do zapytania ofertowego. Przeznaczony dla sklepów B2B z indywidualnymi cenami.

Przejdź do WooCommerce > Ustawienia > Polski PRO > Tryb katalogowy i włącz moduł (opcja polski_catalog).

UstawienieOpcja w bazieDomyślna wartośćOpis
Włącz tryb katalogowypolski_catalogNieAktywuje tryb katalogowy
Ukryj cenypolski_catalog_hide_pricesTakUsuwa wyświetlanie cen
Ukryj przycisk koszykapolski_catalog_hide_cartTakUsuwa przycisk “Dodaj do koszyka”
Tekst zastępczy cenypolski_catalog_price_text”Zapytaj o cenę”Tekst wyświetlany zamiast ceny
Komunikat na produkciepolski_catalog_notice""Komunikat wyświetlany na stronie produktu
Przekieruj do RFQpolski_catalog_redirect_rfqNiePrzekierowanie do formularza zapytania ofertowego
Tryb warunkowypolski_catalog_conditionalallall, guests, roles

Tryb katalogowy może być aktywny:

  • Dla wszystkich (all) - każdy widzi katalog bez cen
  • Tylko dla niezalogowanych (guests) - zalogowani klienci widzą ceny i mogą kupować
  • Dla wybranych ról (roles) - katalog aktywny tylko dla wybranych ról WordPress

Tryb “Tylko dla niezalogowanych” jest popularny w B2B - hurtownia wymaga rejestracji przed odsłonięciem cen.

// Przykład: własna logika warunkowa
add_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;
});

Moduł używa filtra woocommerce_get_price_html i zastępuje cenę skonfigurowanym tekstem.

/**
* 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;

Przykład - różne teksty dla kategorii:

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);

Moduł blokuje zakup filtrem woocommerce_is_purchasable:

/**
* 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;

Przykład - zezwolenie na zakup wybranych produktów:

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);

Gdy polski_catalog_notice jest ustawiony, na stronie produktu wyświetla się komunikat o trybie katalogowym.

Przykład komunikatu:

Aby poznać cenę tego produktu, skontaktuj się z naszym zespołem handlowym lub wypełnij formularz zapytania ofertowego.

Gdy polski_catalog_redirect_rfq jest włączone, przycisk kieruje do formularza zapytania ofertowego (moduł RFQ):

  1. Przycisk “Zapytaj o cenę” zamiast “Dodaj do koszyka”
  2. Automatyczne przekazanie ID produktu do formularza RFQ
  3. Pre-fill nazwy produktu w formularzu
  4. Powrót do produktu po wysłaniu zapytania

Aby integracja działała, oba moduły - katalogowy i RFQ - muszą być aktywne.

Moduł automatycznie ukrywa:

ElementHook WooCommerceEfekt
Przycisk “Dodaj do koszyka”woocommerce_is_purchasableProdukt oznaczony jako niedostępny do zakupu
Cenawoocommerce_get_price_htmlHTML ceny zastąpiony tekstem
Ikona koszyka w nagłówkupolski_pro/catalog/hide_cart_iconUkrywa ikonę mini-koszyka
Strona koszykatemplate_redirectPrzekierowanie z /cart/ na stronę główną
Strona kasytemplate_redirectPrzekierowanie z /checkout/ na stronę główną

Każdą opcję włącz lub wyłącz niezależnie. Na przykład:

  • Ukryj ceny, ale zostaw przycisk koszyka (klient kupuje “za nieznaną cenę” - kontakt po zamówieniu)
  • Ukryj przycisk koszyka, ale pokaż ceny (klient widzi ceny, ale musi zapytać o zakup)
  • Ukryj wszystko (pełny tryb katalogowy)

Wyklucz produkt z trybu katalogowego: edycja produktu > Polski PRO > Tryb katalogowy > zaznacz “Wyklucz z trybu katalogowego”.

/**
* Filtruje kategorie wykluczone z trybu katalogowego.
*
* @param array $excluded_categories Tablica ID kategorii
*/
apply_filters('polski_pro/catalog/excluded_categories', array $excluded_categories): array;

Przykład:

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;
});

Moduł dodaje klasy CSS do <body> ułatwiające stylowanie:

KlasaKiedy dodawana
polski-catalog-modeTryb katalogowy jest aktywny
polski-catalog-prices-hiddenCeny są ukryte
polski-catalog-cart-hiddenPrzycisk koszyka jest ukryty

Przykład CSS:

.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ę";
}

Ceny nadal się wyświetlają mimo włączenia trybu katalogowego Niektóre motywy używają niestandardowych metod wyświetlania cen, omijając filtr woocommerce_get_price_html. Użyj klas CSS .polski-catalog-prices-hidden .price { display: none; } jako zabezpieczenia.

Klient może dodać produkt do koszyka przez bezpośredni URL Moduł blokuje to na poziomie filtra woocommerce_is_purchasable. Jeśli problem występuje, sprawdź, czy inna wtyczka nie nadpisuje tego filtra z wyższym priorytetem.

Tryb warunkowy nie działa poprawnie z cache Wtyczki cache’ujące mogą serwować wersję cache’owaną niezależnie od stanu zalogowania. Skonfiguruj wtyczkę cache, aby rozdzielała cache dla zalogowanych i niezalogowanych użytkowników.

Ta strona ma wyłącznie charakter informacyjny i nie stanowi porady prawnej. Przed wdrożeniem skonsultuj się z prawnikiem. Polski for WooCommerce jest oprogramowaniem open source (GPLv2) dostarczanym bez gwarancji.