Modificarea Descrierii Produsului în WooCommerce

20 apr. 2013, 20:19:52
Vizualizări: 38.5K
Voturi: 3

Am modificat aspectul paginii de produs individual. Am mutat câteva elemente folosind hook-uri în WooCommerce și editând CSS-ul.

În varianta implicită, pagina de produs individual afișează descrierea scurtă (definită ca woocommerce_template_single_excerpt în fișierul content-single-product.php) lângă imaginea produsului, dar doresc să afișez descrierea completă.

Descrierea completă este afișată în taburile de date ale produsului sub produs. Consultând fișierul description.php din directorul tabs, se pare că acesta doar setează titlul. Probabil, deoarece produsul este un tip de postare personalizat, descrierea produsului reprezintă conținutul postării personalizate.

Am rezolvat temporar adăugând descrierea completă în secțiunea de descriere scurtă a produsului, dar aș dori o soluție care să nu necesite ca persoanele care adaugă produse să facă acest lucru manual.

Poate cineva să sugereze o modalitate de a realiza acest lucru?

3
Comentarii

Aceasta este specific WordPress - poate fi, vă rog, redeschisă.

Dave Hilditch Dave Hilditch
7 oct. 2014 16:01:47

@DaveHilditch nu, nu este. este woocommerce. dar iată o metodă despre cum se face, fără a edita fișierele de șablon. ceea ce este perfect în regulă, dar ai putea face același lucru prin acțiuni în functions.php, făcând-o mai prietenoasă cu actualizările. ca așa remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20); add_action('woocommerce_single_product_summary', 'the_content', 20);

honk31 honk31
5 iul. 2018 18:21:45

Faptul că acest Stack Exchange nu permite întrebări despre WooCommerce sau alte plugin-uri de la terți, reduce serios utilitatea sa.

Dave Hilditch Dave Hilditch
23 iul. 2018 17:16:52
Toate răspunsurile la întrebare 4
0

În loc să editezi template-ul, ai putea încerca și această abordare:

<?php

/** Elimină descrierea scurtă dacă filele produsului nu sunt afișate */
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' );

/** Afișează descrierea produsului 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', __('Descriere Produs', '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

O soluție ușor diferită oferită de WooCommerce, așa că am considerat că ar trebui să o includ și aici:

În templates/single-product/short-description.php unde scrie:

    $post->post_excerpt 

Înlocuiți aceasta (apare de 2 ori) cu:

    $post->post_content 

Mulțumesc

24 apr. 2013 19:07:14
3

Nici eu nu am înțeles niciodată acest lucru din WooCommerce... M-aș fi așteptat la o 'descriere a produsului' ca informație principală a postării și apoi poate la 'descriere detaliată' sau 'informații suplimentare despre produs' în filă.

în templates/single-product/short-description.php înlocuiește

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

cu

if ( ! the_content() ) return;
?>
<div itemprop="description">
    <?php echo the_content(); ?>

apoi în templates/single-product/tabs/description.php înlocuiește

<?php the_content(); ?>

cu

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

Salut, am găsit de fapt același lucru ieri și m-am gândit dacă poate fi folosit sau are nevoie de modificări. Acest răspuns schimbă scurta descriere peste tot unde este folosită și nu sunt sigur dacă vreau să fac asta. Poate voi putea scrie o funcție folosind acest răspuns și să o conectez la pagina de produs individual (content-single-product.php) astfel încât doar acea pagină să fie modificată.

paultp paultp
22 apr. 2013 10:53:05

Nu înțeleg ce vrei să spui, acestea sunt doar șabloanele pentru paginile unice... Din câte știu eu, șabloanele woocommerce single-product nu sunt folosite în altă parte.

Ewout Ewout
22 apr. 2013 17:58:09

Mulțumesc, ai dreptate. Woocommerce a confirmat acest lucru. Mi-au oferit o soluție ușor diferită așa că o voi posta ca un răspuns nou. Mulțumesc pentru ajutor.

paultp paultp
24 apr. 2013 19:03:19
1

Folosește șablonul WooCommerce în 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 iun. 2014 16:32:14
Comentarii

Vă rugăm să nu trimiteți doar cod, ci să explicați ce face și cum rezolvă problema.

kraftner kraftner
5 iun. 2014 16:54:24