Woocommerce content-single-product template override не работает

У меня проблема, и я борюсь с ней вчера. Итак, у меня есть сеть с woocommerce, которая все еще находится на локальном хосте. У меня проблема с переопределением шаблона. Я переопределил начало цикла, конец, content-product.php и content-single-product.php в своей теме, и это работает нормально. У меня проблема с content-single-product.php, потому что я хочу, чтобы она зависела от категории (независимо от идентификатора – id, name, slug). Поэтому я нашел несколько решений в Google, но никто не будет работать. В моем singe-product.php я заменил

woocommerce_get_template_part( 'content', 'single-product' ); 

с

 if ( is_product_category( 'my-cat-slug' ) ) { woocommerce_get_template_part( 'content', 'single-product-dogs' ); } else { woocommerce_get_template_part( 'content', 'single-product' ); } 

Я попытался поставить вместо фактического Cat Name, я попытался использовать !is_product_category чтобы получить обратный … Также ничего. Конечно, я поместил single-product.php в папку woocommerce в моей теме, где остались остальные переопределенные файлы. И я создал файл-файл-single-product-dogs.php, где я скопировал контент из content-single-product.php с некоторыми изменениями, размером с TEST, написанный где-то там.

Также я попробовал

 if ( ! function_exists( 'woocommerce_content' ) ) { function woocommerce_content() { if ( has_term( 'my-cat-slug', 'product_cat' ) ) { while ( have_posts() ) : the_post(); wc_get_template_part( 'content', 'single-product-dogs' ); endwhile; } else { while ( have_posts() ) : the_post(); wc_get_template_part( 'content', 'single-product' ); endwhile; } } } 

Это тоже не работает. Все, что я использую, всегда возвращается к переопределенному содержимому по умолчанию – single-product.php

У меня больше нет идей. Пожалуйста, помогите кому-нибудь 🙂

PS Можно ли изменить файл product-image.php по умолчанию, который будет отличаться для этого пользовательского контента – single-product-dog.php?

благодаря

Если вы уже интегрировали WooCommerce в свою тему, вы можете переопределить функцию woocommerce_content () .

Он отлично работает на WooCommerce 2.5.5

  • Поместите файлы пользовательских шаблонов в your_theme / woocommerce /

  • Добавьте нижеприведенный фрагмент кода в свою тему functions.php :

 /** * Override 'woocommerce_content' function */ if ( ! function_exists( 'woocommerce_content' ) ) { /** * Output WooCommerce content. * * This function is only used in the optional 'woocommerce.php' template. * which people can add to their themes to add basic woocommerce support. * without hooks or modifying core templates. * */ function woocommerce_content() { if ( is_singular( 'product' ) ) { while ( have_posts() ) : the_post(); // Template depends from category slug if ( has_term( 'my-cat-slug', 'product_cat' ) ) { woocommerce_get_template_part( 'content', 'single-product-dogs' ); } else { woocommerce_get_template_part( 'content', 'single-product' ); } endwhile; } else { ?> <?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?> <h1 class="page-title"><?php woocommerce_page_title(); ?></h1> <?php endif; ?> <?php do_action( 'woocommerce_archive_description' ); ?> <?php if ( have_posts() ) : ?> <?php do_action('woocommerce_before_shop_loop'); ?> <?php woocommerce_product_loop_start(); ?> <?php woocommerce_product_subcategories(); ?> <?php while ( have_posts() ) : the_post(); ?> <?php wc_get_template_part( 'content', 'product' ); ?> <?php endwhile; // end of the loop. ?> <?php woocommerce_product_loop_end(); ?> <?php do_action('woocommerce_after_shop_loop'); ?> <?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?> <?php wc_get_template( 'loop/no-products-found.php' ); ?> <?php endif; } } }