(WooCommerce) Eliminar la Barra Lateral solo en la página de Producto Individual
Estoy creando un tema y no quiero mostrar la barra lateral en la página de producto individual.
Siguiendo las recomendaciones de WooCommerce, hice una copia de la carpeta "templates" (del plugin woocommerce) y la instalé en mytheme/templates, cambiando el nombre de la carpeta a "woocommerce". En la raíz de mi tema, creé un archivo llamado sidebar-shop.php.
Por ahora tengo la barra lateral mostrada en la página de tienda y en la página de producto individual. Intenté eliminar do_action('woocommerce_sidebar');
de woocommerce/single-product.php y también intenté crear una condicional en woocommerce/shop/sidebar.php, algo como:
if (!is_page('single-product') {
get_sidebar('shop');
}
pero la barra lateral permanece.
¿Hay alguna opción funcional para eliminar solo la barra lateral del producto individual?

La etiqueta condicional para productos individuales es is_product()
add_action('template_redirect', 'remove_sidebar_shop');
function remove_sidebar_shop() {
if ( is_product('add-page-i.d-here') ) {
remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar');
}
}
También puedes querer cambiar el diseño en esa página de producto a ancho completo para eliminar el espacio y reducir el ancho del área de contenido usando una clase personalizada para el cuerpo que también puedes generar condicionalmente.
Etiquetas condicionales de WooCommerce http://docs.woothemes.com/document/conditional-tags/

is_product()
es simplemente un envoltorio de is_singular('product')
. Por lo tanto, ambos funcionan exactamente igual.

Necesitarías añadir el slug de la página de producto individual si ( is_product('camiseta') ) {

¿Y cómo si quiero eliminarlo para todos los productos? Quiero decir, sin un ID específico

Abhik, el código parecía prometedor pero tampoco funcionó. Me pregunto si "product" es el ID real de la página de producto individual. Gracias de todos modos.

// Función para eliminar la barra lateral en páginas de producto
function remove_storefront_sidebar() {
if ( is_product() ) { // Verifica si es una página de producto
remove_action( 'storefront_sidebar', 'storefront_get_sidebar', 10 ); // Elimina la acción de la barra lateral
}
}
// Añade la acción al hook 'get_header'
add_action( 'get_header', 'remove_storefront_sidebar' );
Funciona con la última versión de WooCommerce 2.5.2
También se necesita el siguiente CSS:
/* Estilos para anular el diseño de barra lateral derecha en productos individuales */
.single-product.right-sidebar .content-area {
float: none; /* Elimina el flotado */
margin-right: 0; /* Elimina el margen derecho */
width: 100%; /* Establece el ancho completo */
}
