Cum să folosești descrieri scurte diferite în pagina magazin și pagina produs în WooCommerce
Ce aș dori să obțin este afișarea frazei "Contactați-ne pentru prețuri" doar pe pagina produsului, nu și în pagina magazinului. Vă rugăm să consultați această pagină: http://www.kepaweleurope.com/shop/soutien-mamoplastia-85/
Poate cineva să mă ajute?
Mulțumesc anticipat, Miguel
Șablonul pentru descrierea scurtă se găsește în /templates/single-product/short-description.php :
<?php
/**
* Descrierea scurtă a produsului individual
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 1.6.4
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Ieșire dacă este accesat direct
global $post;
if ( ! $post->post_excerpt ) return;
?>
<div itemprop="description">
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
</div>
Puteți suprascrie acest șablon (sau orice șablon WooCommerce) : http://docs.woothemes.com/document/template-structure/ copiind fișierul în tema dumneavoastră... deci woocommerce/single-product/short-description.php
. Apoi îl puteți edita după preferințe.
EDIT: Dacă am înțeles corect întrebarea dumneavoastră, ați face astfel:
<?php
/**
* Descrierea scurtă a produsului individual
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 1.6.4
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Ieșire dacă este accesat direct
global $post;
?>
<div itemprop="description">
Contactați-ne pentru a afla prețurile Aici
</div>
Sau ați putea filtra woocommerce_short_description
. Sau ați putea defini propria funcție woocommerce_template_single_excerpt()
care este pluggable, sau o puteți elimina complet din hook-ul său. Există într-adevăr multe modalități de a face acest lucru, dar suprascrierea șablonului tinde să fie cea mai simplă de înțeles.
EDIT: Iată un exemplu foarte simplu despre cum să filtrați descrierea scurtă (și în general, filtrarea oricărui lucru urmează întotdeauna același proces)
Editare din nou: acest cod se adaugă în functions.php al temei dumneavoastră
function wpa_98244_filter_short_description( $desc ){
global $product;
if ( is_single( $product->id ) )
$desc .= ' adăugați text suplimentar la descrierea scurtă';
return $desc;
}
add_filter( 'woocommerce_short_description', 'wpa_98244_filter_short_description' );

Bună Helga, Mulțumesc pentru ajutor. Lasă-mă să văd dacă am înțeles. Cea mai simplă metodă este suprascrierea. Am făcut-o, iar acum cred că trebuie să editez fișierul. Întrebarea este ce trebuie să fac pentru a obține ceea ce doresc? Poți să-mi dai mai multe detalii? Mulțumesc anticipat, Miguel

Bună Helga. M-am întors la această problemă, pentru că am fost implicat în alt proiect. Mulțumesc pentru suportul acordat până acum. Ceea ce am nevoie este să am descrierea scurtă ca în tema normală WooCommerce (aș dori să nu am "Contactați-ne pentru a afla prețurile Aici"). Pe pagina produsului aș dori să am descrierea scurtă normală plus "Contactați-ne pentru a afla prețurile Aici" în locul prețurilor pe care le-am șters deja. Nu sunt sigur dacă am fost suficient de clar... Mulțumesc anticipat. Miguel

Deci doar copiază template-ul original și adaugă "Contactați-ne" în el. Ce anume din soluția mea nu funcționează pentru tine?

Nu, nu funcționează pentru mine pentru că dacă o folosesc, nu am descrierea scurtă pe pagina produsului și am "Contactați-ne" pe pagina magazinului. Am nevoie de descriere scurtă pe ambele pagini și "Contactați-ne" doar pe pagina produsului. Nu știu dacă sunt clar.... Mulțumesc anticipat.

Cred că trebuie să îți editezi întrebarea sau poate chiar să pui o întrebare nouă (diferită). Am răspuns la întrebarea așa cum a fost pusă inițial. Pentru informația ta - descrierea scurtă este afișată în mod implicit pe pagina produsului, cu excepția cazului în care tema ta a modificat acest comportament.

Am editat din nou răspunsul meu pentru a arăta cum poți filtra descrierea în loc să editezi șabloanele.

Helga, te rog spune-mi unde trebuie să pun filtrul în descrierea scurtă? Mulțumesc anticipat.

Dragă Helga, am editat fișierul și am făcut următoarea modificare, dar nu funcționează:<?php /* * Descrierea scurtă a unui singur produs /
if ( ! defined( 'ABSPATH' ) ) exit; // Ieși dacă este accesat direct 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 .= ' adaugă text suplimentar la descrierea scurtă'; return $desc; } add_filter( 'woocommerce_short_description', 'wpa_98244_filter_short_description' ); </div>

Puteți folosi această funcționalitate și cu baza de date WordPress pentru pagina de produs. În acest cod, puteți adăuga propria descriere scurtă. Am folosit și o condiție. Puteți să o modificați în funcție de cerințele dumneavoastră. Acest cod trebuie să-l adăugați în fișierul functions.php al temei dumneavoastră.
function My_short_description(){
global $post,$wpdb,$woocommerce;
$your_short_description = "Descrierea mea";
$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 );
