Разные шаблоны товаров для определенной категории WooCommerce

13 авг. 2012 г., 15:26:55
Просмотры: 42.3K
Голосов: 9

Например, у меня есть категория кофемашин и один шаблон для страницы отдельного товара кофемашины, но для категории кофе я хочу иметь другой шаблон single-product.php, как это реализовать? У меня нет доступа к этому посту http://www.woothemes.com/support-forum/?viewtopic=83667, но там похожий вопрос. С страницами и категориями в WordPress это просто, но как сделать это в WooCommerce?

0
Все ответы на вопрос 4
0

Вы можете изменить свой файл single-product.php, чтобы он просто перенаправлял на правильный шаблон в зависимости от категории текущего товара.

Для этого скопируйте single-product.php в папку woocommerce вашей темы. Переименуйте его в single-product-default.php или как-то иначе. Создайте еще одну копию и назовите ее single-product-coffee.php. В этот файл вы можете внести любые необходимые изменения.

Затем в вашем single-product.php вы можете добавить простое условие для перенаправления на соответствующий single-product-что-то.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 );
17 мар. 2013 г. 22:05:47
2

Создайте новый шаблон и назовите его: taxonomy-product_cat-Ваш_слаг_категории_товара.php просто как этот

24 авг. 2012 г. 12:46:33
Комментарии

Это ответ, даже если он не принят.

Allen Gingrich Allen Gingrich
6 апр. 2018 г. 20:09:02

Нет, похоже, это для страницы списка товаров (archive-product), а не для страницы отдельного товара (single-product). Просто взгляните на код, чтобы подтвердить это.

Buzut Buzut
12 июн. 2020 г. 11:59:51
1

Я реализовал перенаправление в single-product.php, используя ID товара.

Затем создал различные шаблоны товаров в переопределенной папке woocommerce (../ваша-тема/woocommerce/), такие как single-product-product1.php и шаблон по умолчанию (single-product-default.php, который был просто копией предыдущего single-product.php).

if($post->ID == '103'){
wc_get_template_part( 'single-product-product1' ); 
} else{
wc_get_template_part( 'single-product-default' );
}
5 июл. 2013 г. 20:29:54
Комментарии

Пришлось зайти и проголосовать за это! Спасибо, выручили!

Tiago Tiago
31 мар. 2020 г. 18:59:01
0

Я реализовал это (для WooCommerce 2.1), создав шаблон товара в папке woocommerce templates моей темы с именем 'content-single-product-{$product_cat}.php' и добавив фильтр 'wc_get_template_part', который ищет шаблоны по названию категории товара. Теперь вы можете переопределять шаблон content-single-product для каждой категории товаров:

// Функция для кастомного шаблона товара
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);
19 дек. 2014 г. 14:00:41