Используйте пользовательский файл product-image.php на странице продукта woocommerce - PullRequest
0 голосов
/ 29 мая 2018

Я новичок в Woocommerce.Я хотел бы настроить шаблон для страницы продукта Woocommerce только для категории книг.Я заменил файл content-single-product.php на пользовательский, изменив код в файле single-product.php следующим образом:

 <?php while ( have_posts() ) : the_post(); ?>
    <?php 
                global $post;
                $terms = wp_get_post_terms( $post->ID, 'product_cat' );
                foreach ( $terms as $term ) $categories[] = $term->slug;
                if ( in_array( 'livros', $categories ) ) {
                    wc_get_template_part( 'content', 'single-product-books' );              
                } else {
                    wc_get_template_part( 'content', 'single-product' );                
                }
                ?>
    <?php endwhile; // end of the loop. ?>

Теперь я хочу сделать то же самое при замене изображения продуктаФайл .php с этим продуктом image-books.php.Пробовал вот так, но не работает:

global $post;
            $terms = wp_get_post_terms( $post->ID, 'product_cat' );
            foreach ( $terms as $term ) $categories[] = $term->slug;
            if ( in_array( 'books', $categories ) ) {
                wc_get_template_part( 'content', 'single-product-books' );
                wc_get_template_part( 'single-product/product', 'image-books' );
            } else {
                wc_get_template_part( 'content', 'single-product' );
                wc_get_template_part( 'content', 'product-image' );
            }
            ?>

Этот файл находится в папке шаблона: woocommerce> single-product.Любая помощь?

1 Ответ

0 голосов
/ 30 мая 2018

Изображения одного продукта отображаются с использованием функции woocommerce_show_product_images() и подключаются через woocommerce_before_single_product_summary hook.

Поэтому вместо непосредственного вызова шаблона сначала удалите действие из этого обработчика, а затем добавьте свою пользовательскую функцию втот же хук.

Ваши файлы для показа изображений (product-image-books.php & product-image.php) должны находиться в каталоге wordpress\wp-content\themes\your-theme\woocommerce\single-product\.

Пожалуйста, добавьте следующий код в файл functions.php вашей темы илиПользовательский файл плагина.Я проверил код, и он отлично работает в моей установке.

remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );

add_action( 'woocommerce_before_single_product_summary', 'qt563_woocommerce_show_product_images', 20 );

function qt563_woocommerce_show_product_images() {
    global $post;
    $terms = wp_get_post_terms( $post->ID, 'product_cat' );
    foreach ( $terms as $term ) $categories[] = $term->slug;
    if ( in_array( 'livros', $categories ) ) {
        wc_get_template( 'single-product/product-image-books.php' );              
    } else {
        wc_get_template( 'single-product/product-image.php' );                
    }
}

@ Emmanu, Можете ли вы подтвердить и принять его как ответ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...