Come utilizzare descrizioni brevi diverse nella pagina negozio e nella pagina prodotto in WooCommerce
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

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' );

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

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

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

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.

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.

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

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

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>

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