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.
Configuración
Section titled “Configuración”Ve a WooCommerce > Ajustes > Polski PRO > Modo catálogo y activa el módulo (opción polski_catalog).
Ajustes principales
Section titled “Ajustes principales”| Ajuste | Opción en la base de datos | Valor por defecto | Descripción |
|---|---|---|---|
| Activar modo catálogo | polski_catalog | No | Activa el modo catálogo |
| Ocultar precios | polski_catalog_hide_prices | Sí | Elimina la visualización de precios |
| Ocultar botón de carrito | polski_catalog_hide_cart | Sí | Elimina el botón “Añadir al carrito” |
| Texto sustitutivo del precio | polski_catalog_price_text | ”Zapytaj o cenę” | Texto mostrado en lugar del precio |
| Aviso en el producto | polski_catalog_notice | "" | Aviso mostrado en la página del producto |
| Redirigir a RFQ | polski_catalog_redirect_rfq | No | Redirige al formulario de solicitud de presupuesto |
| Modo condicional | polski_catalog_conditional | all | all, guests, roles |
Modo condicional
Section titled “Modo condicional”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 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;});Cómo funciona
Section titled “Cómo funciona”Ocultar precios
Section titled “Ocultar precios”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);Bloqueo de compras
Section titled “Bloqueo de compras”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);Aviso en la página del producto
Section titled “Aviso en la página del producto”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:
- Botón “Preguntar por el precio” en lugar de “Añadir al carrito”
- Paso automático del ID del producto al formulario RFQ
- Relleno previo del nombre del producto en el formulario
- Regreso al producto tras enviar la solicitud
Para que la integración funcione, ambos módulos - catálogo y RFQ - deben estar activos.
Elementos ocultos
Section titled “Elementos ocultos”Además de los precios y el botón del carrito, el módulo oculta automáticamente:
| Elemento | Hook de WooCommerce | Efecto |
|---|---|---|
| Botón “Añadir al carrito” | woocommerce_is_purchasable | Producto marcado como no comprable |
| Precio | woocommerce_get_price_html | HTML del precio sustituido por texto |
| Icono del carrito en la cabecera | polski_pro/catalog/hide_cart_icon | Oculta el icono del minicarrito |
| Página del carrito | template_redirect | Redirección de /cart/ a la página de inicio |
| Página de pago | template_redirect | Redirección de /checkout/ a la página de inicio |
Ocultación selectiva
Section titled “Ocultación selectiva”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)
Excluir productos y categorías
Section titled “Excluir productos y categorías”Excluir productos
Section titled “Excluir productos”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”.
Excluir categorías
Section titled “Excluir categorías”/** * 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;});Clases CSS auxiliares
Section titled “Clases CSS auxiliares”El módulo añade clases CSS a <body> para facilitar el diseño:
| Clase | Cuándo se añade |
|---|---|
polski-catalog-mode | El modo catálogo está activo |
polski-catalog-prices-hidden | Los precios están ocultos |
polski-catalog-cart-hidden | El 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ę";}Resolución de problemas
Section titled “Resolución de problemas”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.
Próximos pasos
Section titled “Próximos pasos”- Informar de problemas: GitHub Issues
- Módulos relacionados: Solicitud de presupuesto