Single Product Tabs
Las tabs del PDP están remaquetadas por el theme y no dependen solo del HTML estándar de WooCommerce.
Archivos clave:
- woocommerce/single-product/tabs/tabs.php
- woocommerce/single-product-reviews.php
- setup/modules/woocommerce-setup/module.php
Primera capa:
$product_tabs = apply_filters('woocommerce_product_tabs', []);
$tab_desc = $product_tabs['description'] ?? null;
$tab_info = $product_tabs['additional_information'] ?? null;
$tab_reviews = $product_tabs['reviews'] ?? null;Balinot sigue leyendo las tabs nativas de Woo, pero captura su HTML y lo recompone.
Titulos de acordeones
Los títulos principales no salen fijos del template. Se resuelven con prioridad:
- ACF del producto main_accordion_titles
- settings globales single_product_detail_panels.main_accordion_titles
- fallback hardcodeado
Los dos títulos principales son:
- características del producto
- composición y cuidados
Descripción y additional information
El template ejecuta los callbacks de Woo y limpia encabezados repetidos:
call_user_func($tab_desc['callback'], 'description', $tab_desc);
call_user_func($tab_info['callback'], 'additional_information', $tab_info);Luego elimina los h2 que Woo suele inyectar para no duplicar títulos dentro del acordeón.
Guía de tallas
Además de description e additional information, el template construye una guía de tallas propia desde estructuras ACF.
Qué soporta:
- intro del panel
- varias tablas por sección
- columnas multilinea
- filas con medidas
- nota final por sección
No es una tabla Woo nativa: es un bloque editorial del theme.
Datos SIMSS
El template también puede normalizar el meta _simss_raw para pintar composición, lavado y otros datos cuando el conector externo los deja en bruto.
Eso significa que una parte de la tab de detalle no viene del editor visual, sino de meta técnico transformado en frontend.
Reviews dentro de tabs
La tab de reviews no delega a markup estándar sin más. Si el callback resuelto es comments_template, ejecuta comments_template() para aterrizar en el override del theme:
if (($tab_reviews['callback'] ?? null) === 'comments_template') {
comments_template();
}Por eso la experiencia de reseñas queda alineada con el layout propio del PDP.
Regla práctica
- si cambian títulos o copy de paneles, revisa ACF y settings globales antes que el template
- si cambian tablas o composición técnica, revisa el bloque size guide y el parser SIMSS
- si cambian reseñas, no toques solo tabs.php: entra también en single-product-reviews.php y en Woo setup