Come utilizzare descrizioni brevi diverse nella pagina negozio e nella pagina prodotto in WooCommerce

3 mag 2013, 21:00:42
Visualizzazioni: 18.5K
Voti: 2

Quello che vorrei ottenere è la frase "Contattaci per conoscere i prezzi qui" solo nella pagina del prodotto, non nella pagina del negozio. Dai un'occhiata a questa pagina: http://www.kepaweleurope.com/shop/soutien-mamoplastia-85/

Qualcuno può aiutarmi?

Grazie in anticipo Miguel

1
Commenti

Forse prova il supporto di WooCommerce?

Chip Bennett Chip Bennett
3 mag 2013 22:05:34
Tutte le risposte alla domanda 2
14

Il template della descrizione breve si trova in /templates/single-product/short-description.php :

<?php
/**
 * Descrizione breve del prodotto singolo
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Esci se accesso diretto

global $post;

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

Puoi sovrascrivere questo template (o qualsiasi template di WooCommerce) : http://docs.woothemes.com/document/template-structure/ copiando il file nel tuo tema... quindi woocommerce/single-product/short-description.php. Poi puoi modificarlo come preferisci.

MODIFICA: Se ho capito bene la tua domanda, faresti così:

<?php
/**
 * Descrizione breve del prodotto singolo
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Esci se accesso diretto

global $post;

?>
<div itemprop="description">
    Contattaci per conoscere i prezzi qui
</div>

Oppure potresti filtrare woocommerce_short_description. O potresti definire la tua funzione woocommerce_template_single_excerpt() che è "pluggable", o rimuoverla completamente dal suo hook. Ci sono davvero molti modi per farlo, ma la sovrascrittura del template tende ad essere la più semplice da comprendere.

MODIFICA: Ecco un esempio molto basilare di come filtrare la descrizione breve (e in generale filtrare qualsiasi cosa segue sempre lo stesso processo)

Modifica ancora: questo va nel functions.php del tuo tema

function wpa_98244_filter_short_description( $desc ){
    global $product;

    if ( is_single( $product->id ) )
        $desc .= ' aggiungi del testo extra alla descrizione breve';

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

Ciao Helga, grazie per il tuo aiuto.

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

Ciao Helga, grazie per il tuo aiuto. Fammi capire se ho compreso. Il modo più semplice è sovrascrivere. L'ho fatto, e ora penso di dover modificare il file. La domanda è: cosa devo fare per ottenere ciò che voglio? Puoi darmi qualche informazione in più? Grazie in anticipo, Miguel

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

Controlla la mia modifica. Altrimenti, chiarisci la tua domanda.

helgatheviking helgatheviking
8 mag 2013 02:31:03

Ciao Helga. Sono tornato su questo problema, perché ero impegnato in un altro progetto. Grazie per il tuo supporto fino ad ora. Quello che mi serve è avere la descrizione breve come nel tema normale di WooCommerce (vorrei non avere il "Entre em contacto connosco para saber preços Aqui"). Nella pagina del prodotto vorrei avere la normale descrizione breve più "Entre em contacto connosco para saber preços Aqui" al posto dei prezzi che ho già eliminato. Non sono sicuro di essere stato abbastanza chiaro... Grazie in anticipo. Miguel

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

Quindi basta copiare il template originale e aggiungere "Entre em contacto". Cosa non funziona nella mia soluzione per te?

helgatheviking helgatheviking
15 mag 2013 15:16:06

No, non funziona per me perché se la uso non ho la descrizione breve nella pagina del prodotto e ho "Entre em contacto" nella pagina del negozio. Ho bisogno della descrizione breve in entrambe le pagine e "Entre em contacto" solo nella pagina del prodotto. Non so se sono chiaro... Grazie in anticipo.

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

Penso che tu debba modificare la tua domanda o forse persino porre una nuova (diversa) domanda. Ho risposto alla domanda così come era originariamente formulata. FYI - la descrizione breve viene visualizzata di default nella pagina del prodotto, a meno che il tuo tema non l'abbia modificata.

helgatheviking helgatheviking
15 mag 2013 21:50:08

Ho modificato nuovamente la mia risposta per mostrare come filtrare la descrizione invece di modificare i template.

helgatheviking helgatheviking
15 mag 2013 22:12:41

Helga, per favore dimmi dove devo inserire il filtro all'interno della descrizione breve? Grazie in anticipo.

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

<div itemprop="description"> È qui? </div>

Miguel Barros Miguel Barros
17 mag 2013 17:16:23

Cara Helga, ho modificato il file e ho apportato la seguente modifica, ma non funziona:<?php /* * Single product short description /

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly 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 .= ' aggiungi del testo extra alla descrizione breve'; return $desc; } add_filter( 'woocommerce_short_description', 'wpa_98244_filter_short_description' ); </div>

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

Il filtro va inserito nel file functions.php del tuo tema

helgatheviking helgatheviking
22 mag 2013 06:48:44

Ciao Helga. Grazie per il tuo supporto. Funziona perfettamente.

Miguel Barros Miguel Barros
23 mag 2013 15:15:45

Dopo tutto questo, non dimenticare di accettare la mia soluzione come risposta.

helgatheviking helgatheviking
24 mag 2013 16:15:00
Mostra i restanti 9 commenti
0

Puoi anche utilizzare questa funzione con il database di WordPress per la pagina del prodotto. In questo codice, puoi inserire la tua breve descrizione. Ho anche utilizzato una condizione. Puoi modificarla in base alle tue esigenze. Questo codice deve essere inserito nel file function.php del tuo tema.

function My_short_description(){
        global $post,$wpdb,$woocommerce;
        $your_short_description = "La mia descrizione";
        $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