Изменение описания товара в Woocommerce

20 апр. 2013 г., 20:19:52
Просмотры: 38.5K
Голосов: 3

Я изменяю внешний вид страницы отдельного товара. Я переместил несколько элементов, используя хуки Woocommerce и редактируя CSS.

По умолчанию на странице отдельного товара показывается краткое описание (обозначенное как woocommerce_template_single_excerpt в файле content-single-product.php) рядом с изображением товара, но я хочу показывать полное описание.

Полное описание отображается во вкладках данных о товаре под товаром. Изучая файл description.php в директории tabs, похоже, что он просто устанавливает заголовок. Предположительно, поскольку товар является пользовательским типом записи, описание товара является содержимым этой пользовательской записи.

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

Может кто-нибудь предложить способ решения этой задачи?

3
Комментарии

Это специфично для WordPress - можно ли, пожалуйста, переоткрыть вопрос.

Dave Hilditch Dave Hilditch
7 окт. 2014 г. 16:01:47

@DaveHilditch нет, это не так. Это WooCommerce. Но вот метод, как это можно сделать без редактирования файлов шаблонов. Что вполне допустимо, но вы также можете сделать это через действия в вашем functions.php, что сделает решение более устойчивым к обновлениям. Вот так: remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20); add_action('woocommerce_single_product_summary', 'the_content', 20);

honk31 honk31
5 июл. 2018 г. 18:21:45

Тот факт, что этот Stack Exchange не разрешает вопросы по WooCommerce или другим сторонним плагинам, серьезно ограничивает его полезность.

Dave Hilditch Dave Hilditch
23 июл. 2018 г. 17:16:52
Все ответы на вопрос 4
0

Вместо редактирования шаблона вы также можете попробовать это:

<?php

/** Удалить краткое описание, если вкладки товара не отображаются */
function dot_reorder_product_page() {
    if ( get_option('woocommerce_product_tabs') == false ) {
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
    }
}
add_action( 'woocommerce_before_main_content', 'dot_reorder_product_page' );

/** Отобразить полное описание товара через the_content */
function dot_do_product_desc() {

    global $woocommerce, $post;

    if ( $post->post_content ) : ?>
        <div itemprop="description" class="item-description">
            <?php $heading = apply_filters('woocommerce_product_description_heading', __('Описание товара', 'woocommerce')); ?>

            <!-- <h2><?php echo $heading; ?></h2> -->
            <?php the_content(); ?>

        </div>
    <?php endif;
}
add_action( 'woocommerce_single_product_summary', 'dot_do_product_desc', 20 );
18 мар. 2014 г. 10:34:17
0

Немного другое решение, предложенное WooCommerce, поэтому я решил включить его здесь:

В файле templates/single-product/short-description.php, где указано:

    $post->post_excerpt

Замените это (встречается 2 раза) на:

    $post->post_content

Спасибо

24 апр. 2013 г. 19:07:14
3

Я тоже никогда не понимал этого в WooCommerce... Ожидается, что 'описание товара' будет основной информацией в посте, а затем, возможно, 'подробное описание' или 'дополнительная информация о товаре' во вкладке.

В файле templates/single-product/short-description.php замените

if ( ! $post->post_excerpt ) return;
?>
<div itemprop="description">
    <?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>

на

if ( ! the_content() ) return;
?>
<div itemprop="description">
    <?php echo the_content(); ?>

Затем в файле templates/single-product/tabs/description.php замените

<?php the_content(); ?>

на

<?php the_excerpt(); ?>
21 апр. 2013 г. 00:58:17
Комментарии

Привет, я вчера сам нашел то же самое и размышлял, можно ли это использовать или нужно модифицировать. Этот ответ изменяет краткое описание везде, где оно используется, и я не уверен, что хочу это делать. Возможно, я смогу написать функцию, используя этот ответ, и подключить ее к странице отдельного товара (content-single-product.php), чтобы изменялась только эта страница.

paultp paultp
22 апр. 2013 г. 10:53:05

Я не понимаю, что ты имеешь в виду, это только шаблоны страниц товаров... Насколько я знаю, шаблоны woocommerce single-product не используются больше нигде.

Ewout Ewout
22 апр. 2013 г. 17:58:09

Спасибо, ты прав. Woocommerce это подтвердили. Они предложили мне немного другое решение, так что я добавлю его как новый ответ. Спасибо за помощь.

paultp paultp
24 апр. 2013 г. 19:03:19
1

Использование шаблона WooCommerce в price.php

add_action( 'woocommerce_after_shop_loop_item_title', 'my_add_short_description', 9 );
function my_add_short_description() {
      echo '<span class="title-description">' . the_excerpt() . '</span><br />';
} 
5 июн. 2014 г. 16:32:14
Комментарии

Пожалуйста, не просто вставляйте код, а объясните, что он делает и как решает проблему.

kraftner kraftner
5 июн. 2014 г. 16:54:24