web-dev-qa-db-fra.com

Ajouter un sous-titre de produit à la page produit de Woocommerce

  • Wordpress 5.0.1.
  • Woocommerce 3.5.2

Je crée une page de boutique basée sur Wordpress/Woocommerce et je souhaite modifier la logique du thème woocommerce standard, en particulier sur la page produit:

Plus précisément, je veux ajouter un sous-titre de produit qui devrait être affiché juste après le titre du produit. Le sous-titre du produit doit être modifiable en tant que champ de saisie via l'éditeur de produit Woocommerce standard.

Pour y parvenir, j'utilise actuellement le plugin "WooCommerce Product Subtitle" https://de.wordpress.org/plugins/wc-product-subtitle/

Auparavant, j'ai déjà modifié les crochets du modèle de produit woocommerce afin que certains éléments de la page s'affichent dans un ordre différent.

Dans mon functions.php, j'ai écrit:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );          
remove_action( 'woocommerce_single_product_summary', 'WooCommerce_Product_Subtitle' );          
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );         
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );          
add_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_single_title', 0 );          
add_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_single_price', 2 );          
add_action( 'woocommerce_single_product_summary', 'woocommerce_show_product_images', 0 );           
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 1 );           
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 2 );          
add_action( 'woocommerce_single_product_summary', 'the_content', 20 );

Comme j'ai changé l'ordre du titre du produit:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );  
add_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_single_title', 0 );

J'ai besoin du sous-titre pour refléter les changements. Le problème que j'ai est que le sous-titre du produit ne s'affiche pas à la position que je veux qu'il affiche. Au moment où le sous-titre est affiché après le titre du produit supprimé et non après celui nouvellement ajouté

Je ne comprends pas très bien comment ajouter_action ou supprimer_action pour le sous-titre ou où trouver les hooks/actions/classes correspondants.

De l'aide serait grandement appréciée!!

1
CorinLUSI

C'est ce que j'ai utilisé pour afficher la catégorie de produits en sous-titre sur ma page d'archive de boutique

add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_shop_loop_item_subtitle', 20 );
function woocommerce_shop_loop_item_subtitle() {
    global $post, $product;
    $categ = $product->get_categories();
    echo $categ;
}

et c'est ce que j'ai utilisé pour l'afficher sur la seule page du produit

add_action( 'woocommerce_single_product_summary', 'woocommerce_single_item_subtitle', 5 );
function woocommerce_single_item_subtitle() {
    global $post, $product;
    $categ = $product->get_categories();
    ?>
    <div class="cat-subtitle">
    <?php
    echo "by " ,$categ; 
?>
</div>
<?php
}

Vous pouvez modifier ce qui est répété pour afficher le champ souhaité.

1
Whee