Cambiar la Descripción del Producto en Woocommerce

20 abr 2013, 20:19:52
Vistas: 38.5K
Votos: 3

He estado cambiando la apariencia de la página de producto individual. He movido algunas cosas mediante hooks en Woocommerce y también editando el CSS.

Por defecto, la página de producto individual muestra la descripción corta (definida como woocommerce_template_single_excerpt en el archivo content-single-product.php) junto a la imagen del producto, pero quiero mostrar la descripción completa.

La descripción completa se muestra en las pestañas de datos del producto debajo del producto. Mirando en el directorio de pestañas en el archivo description.php, parece que solo establece el encabezado. Presumiblemente, como el producto es un tipo de publicación personalizada, la descripción del producto es el contenido de la publicación personalizada.

He solucionado esto temporalmente colocando la descripción completa en la sección de descripción corta del producto, pero me gustaría una solución que no requiera que alguien que agregue productos tenga que hacer esto.

¿Puede alguien sugerir una manera de hacer esto, por favor?

3
Comentarios

Esto es específico de WordPress - ¿podría reabrirse por favor?

Dave Hilditch Dave Hilditch
7 oct 2014 16:01:47

@DaveHilditch no, no lo es. Es woocommerce. Pero aquí hay un método de cómo se hace, sin editar archivos de plantilla. Lo cual está totalmente bien, pero también podrías hacerlo mediante acciones dentro de tu functions.php, haciéndolo más compatible con actualizaciones. Así: remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20); add_action('woocommerce_single_product_summary', 'the_content', 20);

honk31 honk31
5 jul 2018 18:21:45

El hecho de que este stack exchange no permita preguntas sobre WooCommerce, u otros plugins de terceros, limita seriamente su utilidad.

Dave Hilditch Dave Hilditch
23 jul 2018 17:16:52
Todas las respuestas a la pregunta 4
0

En lugar de editar la plantilla, también podrías probar esto:

<?php

/** Eliminar la descripción corta si las pestañas del producto no se muestran */
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' );

/** Mostrar la descripción del producto 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', __('Descripción del Producto', 'woocommerce')); ?>

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

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

Una solución ligeramente diferente proporcionada por WooCommerce que pensé debería incluir aquí:

En templates/single-product/short-description.php donde dice:

    $post->post_excerpt

Reemplaza esto (2 ocurrencias) con:

    $post->post_content

Gracias

24 abr 2013 19:07:14
3

Nunca entendí esto tampoco en WooCommerce... Esperaría una 'descripción del producto' como información principal del post y luego quizás 'descripción detallada' o 'información adicional del producto' en la pestaña.

En templates/single-product/short-description.php reemplaza

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

con

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

luego en templates/single-product/tabs/description.php reemplaza

<?php the_content(); ?>

con

<?php the_excerpt(); ?>
21 abr 2013 00:58:17
Comentarios

Hola, en realidad encontré lo mismo ayer y he estado pensando si se puede usar o necesita modificación. Esta respuesta cambia la descripción corta en todos los lugares donde se usa y no estoy seguro de querer hacer eso. Tal vez pueda escribir una función usando esta respuesta y engancharla a la página de producto individual (content-single-product.php) para que solo esa página se modifique.

paultp paultp
22 abr 2013 10:53:05

No entiendo a qué te refieres, estos son solo los templates de página individual... AFAIK los templates woocommerce single-product no se usan en ningún otro lugar.

Ewout Ewout
22 abr 2013 17:58:09

Gracias, tienes razón. Woocommerce lo confirmó. Me dieron una solución ligeramente diferente, así que la publicaré como una nueva respuesta. Gracias por tu ayuda.

paultp paultp
24 abr 2013 19:03:19
1

Usar plantilla de WooCommerce en 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 jun 2014 16:32:14
Comentarios

Por favor, no solo copies el código, sino que explica qué hace y cómo resuelve el problema.

kraftner kraftner
5 jun 2014 16:54:24