Comment ajouter une troisième description aux pages produits WooCommerce ?

Il arrive que la « description longue » et la « description courte » ne soient pas suffisantes sur la page produit de WooCommerce. Que faire si vous avez besoin d’ajouter une autre section de contenu HTML – disons – tout en bas de la page (et peut-être, en raison de la longueur de la page, ajouter un autre bouton d’ajout au panier à cet endroit également) ?

Dans cet extrait simple, nous allons ajouter un autre éditeur de texte « WYSIWYG » dans la page d’édition d’un produit, et afficher le résultat en bas de la page du produit. C’est parti !

Voici un élément de contenu supplémentaire que j’ai pu ajouter au bas de la page des produits grâce à l’extrait de code PHP ci-dessous.
Et voici le résultat : une nouvelle boîte méta sur la page de modification du produit où vous pouvez saisir du contenu HTML.
add_action( 'add_meta_boxes', 'wootimeo_new_meta_box_single_prod' );
 
function wootimeo_new_meta_box_single_prod() {
   add_meta_box(
      'custom_product_meta_box',
      'Troisième description du produit',
      'wootimeo_add_custom_content_meta_box',
      'product',
      'normal',
      'default'
   );
}
 
function wootimeo_add_custom_content_meta_box( $post ){
   $third_desc = get_post_meta( $post->ID, '_third_desc', true ) ? get_post_meta( $post->ID, '_third_desc', true ) : '';   
   wp_editor( $third_desc, '_third_desc' );
}
 
add_action( 'save_post_product', 'wootimeo_save_custom_content_meta_box', 10, 1 );
 
function wootimeo_save_custom_content_meta_box( $post_id ) {
   if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
   if ( ! isset( $_POST['_third_desc'] ) ) return;
   update_post_meta( $post_id, '_third_desc', $_POST['_third_desc'] );
}
 
add_action( 'woocommerce_after_single_product_summary' , 'wootimeo_third_desc_bottom_single_product', 99 );
   
function wootimeo_third_desc_bottom_single_product() {
   global $product;
   $third_desc = get_post_meta( $product->get_id(), '_third_desc', true ) ? get_post_meta( $product->get_id(), '_third_desc', true ) : '';
   if ( ! $third_desc ) return;
   echo '<div>';
   echo $third_desc;
   echo '</div>';
}Langage du code : PHP (php)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *