Přeskočit na obsah

Katalogovy rezim B2B

Katalogovy rezim meni obchod na katalog bez moznosti nakupu. Skryjte ceny, zamente tlacitka na zpravy nebo presmerujte na poptavky. Urceno pro B2B obchody s individualnymi cenami.

Prejdete do WooCommerce > Nastaveni > Polski PRO > Katalogovy rezim a zapnete modul (moznost polski_catalog).

NastaveniMoznost v databaziVychozi hodnotaPopis
Zapnout katalogovy rezimpolski_catalogNeAktivuje katalogovy rezim
Skryt cenypolski_catalog_hide_pricesAnoOdstrani zobrazeni cen
Skryt tlacitko kosikupolski_catalog_hide_cartAnoOdstrani tlacitko “Pridat do kosiku”
Nahradni text cenypolski_catalog_price_text”Zapytaj o cenę”Text zobrazeny namisto ceny
Zprava na produktupolski_catalog_notice""Zprava zobrazena na strance produktu
Presmerovat na RFQpolski_catalog_redirect_rfqNePresmerovani na formular poptavky
Podmineny rezimpolski_catalog_conditionalallall, guests, roles

Katalogovy rezim muze byt aktivni:

  • Pro vsechny (all) - kazdy vidi katalog bez cen
  • Pouze pro neprihlasene (guests) - prihlaseni zakaznici vidi ceny a mohou nakupovat
  • Pro vybrane role (roles) - katalog aktivni pouze pro vybrane role WordPressu

Podmineny rezim “Pouze pro neprihlasene” je popularni v B2B modelech, kde velkoobchod vyzaduje registraci uctu pred odhalenem cen.

// Příklad: vlastní podmíněná logika
add_filter('polski_pro/catalog/is_active', function (bool $is_active): bool {
// Vypnout katalogový režim pro zákazníky s alespoň 5 objednávkami
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;
});

Modul se pripojuje k filtru woocommerce_get_price_html a nahrazuje HTML ceny nastavenym nahradnim textem.

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

Priklad - ruzne texty pro kategorie:

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

Modul vyuziva filtr woocommerce_is_purchasable pro blokovani moznosti nakupu:

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

Priklad - povoleni nakupu vybranych produktu:

add_filter('polski_pro/catalog/is_purchasable', function (bool $purchasable, \WC_Product $product): bool {
$always_purchasable = [101, 102, 103]; // ID produktů vždy dostupných
if (in_array($product->get_id(), $always_purchasable, true)) {
return true;
}
return $purchasable;
}, 10, 2);

Kdyz je moznost polski_catalog_notice nastavena, na strance jednotliveho produktu se zobrazuje zprava (notice) informujici zakaznika o katalogovem rezimu.

Priklad zpravy:

Pro zjisteni ceny tohoto produktu kontaktujte nas obchodni tym nebo vyplnte formular poptavky.

Kdyz je moznost polski_catalog_redirect_rfq zapnuta, nahradni tlacitko na strance produktu smeruje na formular poptavky (modul RFQ). Integrace zahrnuje:

  1. Tlacitko “Zeptejte se na cenu” namisto “Pridat do kosiku”
  2. Automaticke predani ID produktu do formulare RFQ
  3. Pre-fill nazvu produktu ve formulari
  4. Navrat k produktu po odeslani poptavky

Aby integrace fungovala, oba moduly - katalogovy a RFQ - musi byt aktivni.

Krome cen a tlacitka kosiku modul automaticky skryva:

ElementHook WooCommerceEfekt
Tlacitko “Pridat do kosiku”woocommerce_is_purchasableProdukt oznacen jako nedostupny k nakupu
Cenawoocommerce_get_price_htmlHTML ceny nahrazeno textem
Ikona kosiku v hlaviccepolski_pro/catalog/hide_cart_iconSkryje ikonu mini-kosiku
Stranka kosikutemplate_redirectPresmerovani z /cart/ na hlavni stranku
Stranka pokladnytemplate_redirectPresmerovani z /checkout/ na hlavni stranku

Neni nutne skryvat vsechny elementy najednou. Kazdou moznost lze zapnout nebo vypnout nezavisle. Napriklad:

  • Skryt ceny, ale nechat tlacitko kosiku (zakaznik nakupuje “za neznamou cenu” - kontakt po objednavce)
  • Skryt tlacitko kosiku, ale ukazat ceny (zakaznik vidi ceny, ale musi pozadat o nakup)
  • Skryt vse (uplny katalogovy rezim)

Vybrane produkty mohou byt vylouceny z katalogoveho rezimu v uprave produktu, zalozka Polski PRO > Katalogovy rezim, zaskrtnutim moznosti “Vyloucit z katalogoveho rezimu”.

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

Priklad:

add_filter('polski_pro/catalog/excluded_categories', function (array $excluded_categories): array {
$excluded_categories[] = 15; // "Příslušenství" - vždy dostupné k nákupu
$excluded_categories[] = 28; // "Outlet"
return $excluded_categories;
});

Modul pridava CSS tridy k <body> pro snazsi stylizaci:

TridaKdy se pridava
polski-catalog-modeKatalogovy rezim je aktivni
polski-catalog-prices-hiddenCeny jsou skryty
polski-catalog-cart-hiddenTlacitko kosiku je skryto

Priklad CSS:

.polski-catalog-mode .price {
display: none; /* Dodatečné skrytí ceny, pokud motiv nerespektuje filtr */
}
.polski-catalog-mode .single_add_to_cart_button {
background-color: #0073aa;
content: "Zapytaj o cenę";
}

Ceny se stale zobrazuji navzdory zapnutemu katalogovemu rezimu Nektere motivy pouzivaji nestandardni metody zobrazeni cen, obchazejici filtr woocommerce_get_price_html. Pouzijte CSS tridy .polski-catalog-prices-hidden .price { display: none; } jako zabezpeceni.

Zakaznik muze pridat produkt do kosiku pres primy URL Modul to blokuje na urovni filtru woocommerce_is_purchasable. Pokud problem pretrvava, zkontrolujte, ze jiny plugin neprepise tento filtr s vyssi prioritou.

Podmineny rezim nefunguje spravne s cache Cache pluginy mohou servovat cachovanu verzi nezavisle na stavu prihlaseni. Nakonfigurujte cache plugin, aby rozlisoval cache pro prihlasene a neprihlasene uzivatele.

Tato stránka slouží pouze k informačním účelům a nepředstavuje právní poradenství. Před implementací se poraďte s právníkem. Polski for WooCommerce je open source software (GPLv2) poskytovaný bez záruky.