Skip to content

B2B catalog mode

El modo catálogo convierte la tienda en un catálogo sin posibilidad de compra. Oculta los precios, sustituye los botones por mensajes o redirige a una solicitud de presupuesto. Diseñado para tiendas B2B con precios individuales.

Ve a WooCommerce > Ajustes > Polski PRO > Modo catálogo y activa el módulo (opción polski_catalog).

AjusteOpción en la base de datosValor por defectoDescripción
Activar modo catálogopolski_catalogNoActiva el modo catálogo
Ocultar preciospolski_catalog_hide_pricesElimina la visualización de precios
Ocultar botón de carritopolski_catalog_hide_cartElimina el botón “Añadir al carrito”
Texto sustitutivo del preciopolski_catalog_price_text”Zapytaj o cenę”Texto mostrado en lugar del precio
Aviso en el productopolski_catalog_notice""Aviso mostrado en la página del producto
Redirigir a RFQpolski_catalog_redirect_rfqNoRedirige al formulario de solicitud de presupuesto
Modo condicionalpolski_catalog_conditionalallall, guests, roles

El modo catálogo puede estar activo:

  • Para todos (all) - todos ven un catálogo sin precios
  • Solo para invitados (guests) - los clientes con sesión iniciada ven los precios y pueden comprar
  • Para roles seleccionados (roles) - catálogo activo solo para roles de WordPress seleccionados

El modo condicional “Solo para invitados” es popular en los modelos B2B donde el mayorista exige el registro de una cuenta antes de revelar los precios.

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

El módulo se engancha al filtro woocommerce_get_price_html y sustituye el HTML del precio por el texto sustitutivo configurado.

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

Ejemplo - texto diferente por categorías:

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

El módulo utiliza el filtro woocommerce_is_purchasable para bloquear la posibilidad de compra:

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

Ejemplo - permitir la compra de productos seleccionados:

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

Cuando la opción polski_catalog_notice está configurada, en la página del producto individual se muestra un aviso que informa al cliente sobre el modo catálogo.

Aviso de ejemplo:

Para conocer el precio de este producto, ponte en contacto con nuestro equipo de ventas o rellena el formulario de solicitud de presupuesto.

Integración con el módulo de solicitud de presupuesto

Section titled “Integración con el módulo de solicitud de presupuesto”

Cuando la opción polski_catalog_redirect_rfq está activada, el botón sustitutivo de la página del producto dirige al formulario de solicitud de presupuesto (módulo RFQ). La integración incluye:

  1. Botón “Preguntar por el precio” en lugar de “Añadir al carrito”
  2. Paso automático del ID del producto al formulario RFQ
  3. Relleno previo del nombre del producto en el formulario
  4. Regreso al producto tras enviar la solicitud

Para que la integración funcione, ambos módulos - catálogo y RFQ - deben estar activos.

Además de los precios y el botón del carrito, el módulo oculta automáticamente:

ElementoHook de WooCommerceEfecto
Botón “Añadir al carrito”woocommerce_is_purchasableProducto marcado como no comprable
Preciowoocommerce_get_price_htmlHTML del precio sustituido por texto
Icono del carrito en la cabecerapolski_pro/catalog/hide_cart_iconOculta el icono del minicarrito
Página del carritotemplate_redirectRedirección de /cart/ a la página de inicio
Página de pagotemplate_redirectRedirección de /checkout/ a la página de inicio

No es necesario ocultar todos los elementos a la vez. Cada opción se puede activar o desactivar de forma independiente. Por ejemplo:

  • Ocultar precios pero mantener el botón del carrito (el cliente compra a “precio desconocido” - contacto tras el pedido)
  • Ocultar el botón del carrito pero mostrar los precios (el cliente ve los precios pero debe preguntar para comprar)
  • Ocultar todo (modo catálogo completo)

Se pueden excluir productos seleccionados del modo catálogo en el editor de productos, pestaña Polski PRO > Modo catálogo, marcando la opción “Excluir del modo catálogo”.

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

Ejemplo:

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

El módulo añade clases CSS a <body> para facilitar el diseño:

ClaseCuándo se añade
polski-catalog-modeEl modo catálogo está activo
polski-catalog-prices-hiddenLos precios están ocultos
polski-catalog-cart-hiddenEl botón del carrito está oculto

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

Los precios siguen mostrándose a pesar de tener el modo catálogo activado Algunos temas usan métodos no estándar para mostrar los precios, evitando el filtro woocommerce_get_price_html. Usa las clases CSS .polski-catalog-prices-hidden .price { display: none; } como salvaguarda.

El cliente puede añadir el producto al carrito mediante una URL directa El módulo lo bloquea a nivel del filtro woocommerce_is_purchasable. Si el problema persiste, comprueba si otro plugin está sobrescribiendo este filtro con mayor prioridad.

El modo condicional no funciona correctamente con la caché Los plugins de caché pueden servir la versión almacenada en caché independientemente del estado de inicio de sesión. Configura el plugin de caché para que separe la caché de los usuarios con sesión iniciada y de los invitados.

Esta página tiene únicamente carácter informativo y no constituye asesoramiento legal. Consulta con un abogado antes de la implementación. Polski for WooCommerce es software de código abierto (GPLv2) proporcionado sin garantía.