Modifica della Descrizione Prodotto in Woocommerce

20 apr 2013, 20:19:52
Visualizzazioni: 38.5K
Voti: 3

Ho modificato l'aspetto della pagina del prodotto singolo. Ho spostato alcuni elementi agganciandomi a Woocommerce e modificando anche il css.

Di default, la pagina del prodotto singolo mostra la descrizione breve (definita come woocommerce_template_single_excerpt nel file content-single-product.php) accanto all'immagine del prodotto, ma vorrei mostrare la descrizione completa.

La descrizione completa viene mostrata nelle schede dei dati del prodotto sotto il prodotto stesso. Guardando nel file description.php nella directory delle schede, sembra che imposti solo l'intestazione. Presumibilmente, poiché il prodotto è un tipo di post personalizzato, la descrizione del prodotto è il contenuto del post personalizzato.

Ho aggirato il problema inserendo la descrizione completa nella sezione della descrizione breve del prodotto, ma vorrei una soluzione che non richieda a chi aggiunge i prodotti di dover fare questo passaggio.

Qualcuno può suggerire un modo per farlo?

3
Commenti

Questo è specifico per WordPress - può essere riaperto, per favore.

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

@DaveHilditch no, non lo è. è woocommerce. ma ecco un metodo su come farlo, senza modificare i file template. cosa che va benissimo, ma potresti anche farlo tramite azioni all'interno del tuo functions.php, rendendolo più compatibile con gli aggiornamenti. in questo modo remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20); add_action('woocommerce_single_product_summary', 'the_content', 20);

honk31 honk31
5 lug 2018 18:21:45

Il fatto che questo stack exchange non permetta domande su WooCommerce, o altri plugin di terze parti, riduce seriamente la sua utilità.

Dave Hilditch Dave Hilditch
23 lug 2018 17:16:52
Tutte le risposte alla domanda 4
0

Invece di modificare il template potresti anche provare questo:

<?php

/** Rimuovi la descrizione breve se le schede prodotto non sono visualizzate */
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' );

/** Mostra la descrizione prodotto 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', __('Descrizione Prodotto', '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 soluzione leggermente diversa fornita da Woocommerce che ho pensato di includere qui:

Nel file templates/single-product/short-description.php dove c'è scritto:

    $post->post_excerpt 

Sostituire queste (2 occorrenze) con:

    $post->post_content 

Grazie

24 apr 2013 19:07:14
3

Non ho mai capito neanche questo di WooCommerce... mi aspetterei una "descrizione prodotto" come informazione principale dell'articolo e poi magari una "descrizione dettagliata" o "informazioni aggiuntive sul prodotto" nella scheda.

in templates/single-product/short-description.php sostituisci

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(); ?>

poi in templates/single-product/tabs/description.php sostituisci

<?php the_content(); ?>

con

<?php the_excerpt(); ?>
21 apr 2013 00:58:17
Commenti

Ciao, in realtà ho trovato la stessa cosa ieri e ho riflettuto se può essere usata così com'è o ha bisogno di modifiche. Questa risposta modifica la descrizione breve ovunque venga utilizzata e non sono sicuro di volerlo fare. Potrei scrivere una funzione usando questa risposta e agganciarla alla pagina del singolo prodotto (content-single-product.php) in modo che cambi solo quella pagina.

paultp paultp
22 apr 2013 10:53:05

Non capisco cosa intendi, questi sono solo i template delle pagine singole... Per quanto ne so, i template single-product di Woocommerce non sono usati in nessun altro posto.

Ewout Ewout
22 apr 2013 17:58:09

Grazie, hai ragione. Woocommerce lo ha confermato. Mi hanno dato una soluzione leggermente diversa quindi la inserirò come nuova risposta. Grazie per il tuo aiuto.

paultp paultp
24 apr 2013 19:03:19
1

Utilizza il template woocommerce in 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 giu 2014 16:32:14
Commenti

Per favore non limitarti a copiare il codice, ma spiega cosa fa e come risolve il problema.

kraftner kraftner
5 giu 2014 16:54:24