web-dev-qa-db-fra.com

Changer le descriptif du produit Woocommerce

J'ai changé l'apparence de la page Produit unique. J'ai déplacé quelques choses à propos en me connectant à Woocommerce et en éditant le css.

Dans la boîte, la page de produit unique affiche la description courte (décrite comme woocommerce_template_single_excerpt dans le fichier content-single-product.php) à côté de l'image du produit, mais je souhaite afficher la description complète.

La description complète est affichée dans les onglets de données du produit sous le produit. En regardant dans le répertoire tabs dans le fichier description.php, il semble que l’en-tête soit simplement défini. Vraisemblablement, étant donné que le produit est un type de publication personnalisé, la description du produit correspond au contenu de la publication personnalisée.

J'ai résolu le problème en insérant la description complète dans la section Description succincte du produit, mais j'aimerais une solution qui n'exige pas que quelqu'un ajoute des produits.

Quelqu'un peut-il suggérer un moyen de le faire s'il vous plaît?

3
paultp

Correctif légèrement différent fourni par Woocommerce, j'ai donc pensé l'inclure ici:

Dans templates/single-produit/short-description.php où il est écrit:

    $post->post_excerpt 

Remplacez ceci (2 occurrences) par;

    $post->post_content 

Merci

1
paultp

Au lieu de modifier le modèle, vous pouvez également essayer ceci:

<?php

/** Remove short description if product tabs are not displayed */
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' );

/** Display product description 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', __('Product Description', 'woocommerce')); ?>

            <!-- <h2><?php echo $heading; ?></h2> -->
            <?php the_content(); ?>

        </div>
    <?php endif;
}
add_action( 'woocommerce_single_product_summary', 'dot_do_product_desc', 20 );
3
Harish Chouhan

Je n'ai jamais compris cela non plus de woocommerce ... Je m'attendrais à une "description du produit" comme information principale sur le post, puis peut-être à une "description détaillée" ou à une "information supplémentaire sur le produit" dans l'onglet.

dans templates/single-product/short-description.php remplacer

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

avec

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

puis dans templates/single-product/tabs/description.php remplacer

<?php the_content(); ?>

avec

<?php the_excerpt(); ?>
2
Ewout

Utilisez le modèle woocommerce dans 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 />';
} 
0
Royal Banna