Cómo usar descripciones cortas diferentes en la página de tienda y en la página de producto en WooCommerce

3 may 2013, 21:00:42
Vistas: 18.5K
Votos: 2

Lo que me gustaría es tener la frase "Entre em contacto connosco para saber preços Aqui" solo en la página de producto, no en la página de tienda. Por favor, mira esta página: http://www.kepaweleurope.com/shop/soutien-mamoplastia-85/

¿Alguien puede ayudarme?

Gracias de antemano, Miguel

1
Comentarios

¿Quizás probar con el soporte de WooCommerce?

Chip Bennett Chip Bennett
3 may 2013 22:05:34
Todas las respuestas a la pregunta 2
14

La plantilla de descripción corta es /templates/single-product/short-description.php:

<?php
/**
 * Descripción corta del producto individual
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Salir si se accede directamente

global $post;

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

Puedes sobrescribir esta plantilla (o cualquier plantilla de WooCommerce): http://docs.woothemes.com/document/template-structure/ copiando el archivo en tu tema... como woocommerce/single-product/short-description.php. Luego puedes editarlo como prefieras.

EDITAR: Si entiendo tu pregunta, harías esto:

<?php
/**
 * Descripción corta del producto individual
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Salir si se accede directamente

global $post;

?>
<div itemprop="description">
    Contáctenos para conocer los precios aquí
</div>

O podrías filtrar woocommerce_short_description. O podrías definir tu propia función woocommerce_template_single_excerpt() que es enchufable, o eliminarla completamente de su hook. Realmente hay muchas formas de hacer esto, pero la sobrescritura de plantillas suele ser la más sencilla de entender.

EDITAR: Aquí hay un ejemplo muy básico de cómo filtrar la descripción corta (y en general filtrar cualquier cosa sigue siempre el mismo proceso)

Editar nuevamente: esto va en el functions.php de tu tema

function wpa_98244_filter_short_description( $desc ){
    global $product;

    if ( is_single( $product->id ) )
        $desc .= ' añade algún texto extra a la descripción corta';

    return $desc;
}
add_filter( 'woocommerce_short_description', 'wpa_98244_filter_short_description' );
3 may 2013 22:21:01
Comentarios

Hola Helga, gracias por tu ayuda.

Miguel Barros Miguel Barros
7 may 2013 11:54:35

Hola Helga, gracias por tu ayuda. Déjame ver si entiendo. La forma más simple es hacer un override. Lo hice, y ahora creo que tengo que editar el archivo. La pregunta es ¿qué necesito hacer para obtener lo que quiero? ¿Puedes darme algo más? Gracias de antemano, Miguel

Miguel Barros Miguel Barros
7 may 2013 12:28:10

Revisa mi edición. De lo contrario, aclara tu pregunta.

helgatheviking helgatheviking
8 may 2013 02:31:03

Hola Helga. Vuelvo a este tema, porque estuve en otro proyecto. Gracias por tu apoyo hasta ahora. Lo que necesito es tener la descripción corta como el tema normal de woocommerce (me gustaría no tener el "Entre em contacto connosco para saber preços Aqui"). En la página del producto me gustaría tener la descripción corta normal más "Entre em contacto connosco para saber preços Aqui" en lugar de los precios que ya he eliminado. No sé si me he explicado lo suficientemente claro... Gracias de antemano. Miguel

Miguel Barros Miguel Barros
15 may 2013 13:56:20

Así que solo copia la plantilla original y añádele "Entre em contacto". ¿Qué es lo que no funciona para ti en mi solución?

helgatheviking helgatheviking
15 may 2013 15:16:06

No, no funciona para mí porque si la uso no tengo la descripción corta en la página del producto y tengo "Entre em contacto" en la página de la tienda. Necesito la descripción corta en ambas páginas y "Entre em contacto" solo en la página del producto. No sé si me explico... Gracias de antemano.

Miguel Barros Miguel Barros
15 may 2013 17:44:43

Creo que necesitas editar tu pregunta o tal vez incluso hacer una nueva (diferente). He respondido a la pregunta tal como se formuló originalmente. Para tu información, la descripción corta se muestra por defecto en la página del producto, a menos que tu tema la haya modificado.

helgatheviking helgatheviking
15 may 2013 21:50:08

He editado mi respuesta nuevamente para mostrar cómo filtrar la descripción en lugar de editar plantillas.

helgatheviking helgatheviking
15 may 2013 22:12:41

Helga, por favor dime dónde coloco el filtro dentro de la descripción corta. Gracias de antemano.

Miguel Barros Miguel Barros
17 may 2013 13:15:07

<div itemprop="description"> ¿Está aquí? </div>

Miguel Barros Miguel Barros
17 may 2013 17:16:23

Querida Helga, edité el archivo e hice el siguiente cambio, pero no está funcionando:<?php /* * Descripción corta del producto individual /

if ( ! defined( 'ABSPATH' ) ) exit; // Salir si se accede directamente global $post; if ( ! $post->post_excerpt ) return; ?> <div itemprop="description"> function wpa_98244_filter_short_description( $desc ){ global $product; if ( is_single( $product->id ) ) $desc .= ' añade un texto adicional a la descripción corta'; return $desc; } add_filter( 'woocommerce_short_description', 'wpa_98244_filter_short_description' ); </div>

Miguel Barros Miguel Barros
21 may 2013 18:20:38

El filtro va en el archivo functions.php de tu tema

helgatheviking helgatheviking
22 may 2013 06:48:44

Hola Helga. Gracias por tu ayuda. Funciona perfectamente.

Miguel Barros Miguel Barros
23 may 2013 15:15:45

Después de todo, no olvides aceptar mi solución como la respuesta.

helgatheviking helgatheviking
24 may 2013 16:15:00
Mostrar los 9 comentarios restantes
0

También puedes usar esto con la base de datos de WordPress para la página de producto. En este código, puedes poner tu propia descripción corta. También he usado una condición. Puedes cambiarla según tus necesidades. Este código necesitas colocarlo en el archivo function.php de tu tema.

function My_short_description(){
        global $post,$wpdb,$woocommerce;
        $your_short_description = "Mi Descripción";
        $id = get_the_id();
        $prefix = $wpdb->prefix;
        $query = $wpdb->get_row("SELECT post_excerpt FROM {$prefix}posts WHERE ID={$id}");
        if($query)
        {
            $woocommerce_page_short_description = $query->post_excerpt;
            if($woocommerce_page_short_description=="" && $woocommerce_page_short_description==null)
            {
                echo $your_short_description;
            }
        }
    }
    add_action( 'woocommerce_before_add_to_cart_form', 'My_short_description', 40 );
1 mar 2017 15:17:35