Plantilla diferente de productos para categoría específica. WooCommerce

8

Por ejemplo, tengo máquinas de café de categoría y una plantilla para la plantilla de producto único de máquina de café, pero para la categoría de café quiero tener una plantilla de producto único.php diferente, ¿cómo implementar esto? No tengo acceso a esta publicación http://www.woothemes.com/support-forum/?viewtopic=83667 pero tiene una pregunta similar, con páginas y categorías en WordPress simple, pero ¿cómo hacerlo en woocommerce?

Anatoliy
fuente

Respuestas:

5

Cree la nueva plantilla y asígnele el nombre: taxonomy-product_cat-Your_category_product_slug.php tan simple como esto

alberto
fuente
Esta es la respuesta, aunque no sea aceptada.
Allen Gingrich
4

Puede cambiar su single-product.php para que sea solo una redirección a la plantilla correcta, dependiendo de la categoría de producto del producto actual.

Para hacerlo, debe copiar single-product.php a la carpeta woocommerce de su tema. Cambie el nombre a single-product-default.php o cualquier cosa. Crea otra copia y llámalo single-product-coffee.php. Puedes hacer los cambios que quieras hacer a este.

Luego, en su sola product.php se podría añadir un condicional sencilla para redirigir a la única referida a productos apropiados algo .php

if( has_term( 'coffee-maker', 'product_cat' ) ) {
    $file = 'single-product-coffee.php';
} else {
    $file = 'single-product-default.php';
}

global $woocommerce;

load_template( $woocommerce->template_url . $file );
helgatheviking
fuente
3

Hice una redirección en single-product.php usando la identificación del producto.

Luego creó diferentes plantillas de producto en la carpeta de comercio de reemplazo (../your-theme/woocommerce/) como single-product-product1.php y la predeterminada (single-product-default.php, que simplemente era una copia de anterior single-product.php).

if($post->ID == '103'){
wc_get_template_part( 'single-product-product1' ); 
} else{
wc_get_template_part( 'single-product-default' );
}
Habitación Gecko
fuente
¡Tuve que iniciar sesión y votar por esto! Gracias, me salvó!
Tiago
1

He hecho esto (Woocommerce 2.1) creando una plantilla para el producto en las plantillas de woocommerce de mi tema llamada 'content-single-product - {$ product_cat} .php' y agregando un filtro 'wc_get_template_part' que busca plantillas con el nombre del producto categoría. Ahora puede anular la plantilla de contenido de un solo producto por categoría de producto:

function my_custom_product_template($template, $slug, $name) {
    if ($name === 'single-product' && $slug === 'content') {
        global $product_cat;
        $temp = locate_template(array("{$slug}-{$name}-{$product_cat}.php", WC()->template_path() . "{$slug}-{$name}-{$product_cat}.php"));
        if($temp) {
           $template = $temp;
        }
    }
    return $template;
}

add_filter('wc_get_template_part', 'my_custom_product_template', 10, 3);
benedict_w
fuente