Single Product Layouts
La ficha de producto no entra en una plantilla fija: el archivo raíz decide un layout interno según settings del core.
Archivos clave:
- woocommerce/content-single-product.php
- setup/modules/woocommerce-setup/module.php
- woocommerce/single-product/layouts/layout-current.php
- woocommerce/single-product/layouts/layout-showcase.php
Router real:
$single_product_layout = function_exists('bs_wc_setup_single_product_layout')
? bs_wc_setup_single_product_layout()
: 'current';Layouts permitidos:
- current
- showcase
La normalización vive en bs_wc_setup_normalize_single_product_layout() y solo acepta esos dos valores. Si el setting woo.single_product_layout trae otra cosa, cae a current.
Layout current
Es la ficha más directa.
Qué hace:
- pinta breadcrumb arriba
- compone galería vertical con imagen principal y galería Woo
- deja el resumen en columna sticky en desktop
- usa excerpt si existe
- si no hay excerpt, extrae el primer párrafo del contenido largo
- delega precio y add to cart en partials separadas
- deja que el hook woocommerce_after_single_product_summary siga renderizando el resto
Punto importante:
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10);
do_action('woocommerce_after_single_product_summary');Eso evita que Woo pinte sus tabs nativas en la posición estándar, porque Balinot las recoloca por su cuenta.
Layout showcase
Es una ficha más editorial.
Qué añade respecto a current:
- rail vertical de miniaturas
- stage principal con slide activo
- acciones de compartir
- bloque meta con SKU y categorías
- tabs insertadas dentro del propio layout
- bloque story separado para el contenido largo
- lógica inline para copiar enlace y mover galería
Patrón real:
- summary corta arriba
- compra inmediata en la columna sticky
- tabs como bloque intermedio
- historia del producto solo si el contenido largo no es idéntico al resumen
Prioridad de contenido
La ficha resuelve la descripción corta así:
- excerpt del producto
- primer párrafo del contenido completo
- resumen por trimming si no hay párrafos claros
Eso evita dejar la columna de compra vacía aunque el editor no haya rellenado la descripción corta de Woo.
Regla práctica
- si cambia la estructura del PDP, toca el layout interno
- si cambia solo la elección entre current y showcase, toca el setting woo.single_product_layout
- si cambian precio o compra, revisa también las partials price.php y cart.php
Last updated on