Multiple images pour WP e-Commerce

Forcé de constater que WP e-Commerce ne prend pas en charge plusieurs images sur une page produit, sauf si vous payez pour l’option « Gold Cart », et après quelques jours de recherche acharné sur Google, j’ai enfin trouvé sur le blog de Simon Battersby le bon bout de code qui va bien !

Comment mettre en place le Multiple images pour WP e-Commerce

Voici comment :

Il a remplacé ce code sur la page wpsc-single_product.php :

<?php if ( wpsc_the_product_thumbnail() ) : ?>
      <a rel="<?php echo wpsc_the_product_title(); ?>" class="<?php echo wpsc_the_product_image_link_classes(); ?>" href="<?php echo wpsc_the_product_image(); ?>">
         <img class="product_image" id="product_image_<?php echo wpsc_the_product_id(); ?>" alt="<?php echo wpsc_the_product_title(); ?>" title="<?php echo wpsc_the_product_title(); ?>" src="<?php echo wpsc_the_product_thumbnail(get_option('product_image_width'),get_option('product_image_height'),'','single'); ?>"/>
      </a>
      <?php if ( function_exists( 'gold_shpcrt_display_gallery' ) )
         echo gold_shpcrt_display_gallery( wpsc_the_product_id() );
      ?>
<?php else: ?>

Par ce code :
<?php if ( wpsc_the_product_thumbnail()) ://if the product has any images...
      if (has_post_thumbnail()): //...display the thumbnail if there is one... ?>
         <a rel="lightbox[<?php echo wpsc_the_product_title(); ?>]" class="<?php echo wpsc_the_product_image_link_classes(); ?>" href="<?php echo wpsc_the_product_image(); ?>">
         <?php echo get_the_post_thumbnail(wpsc_the_product_id(),'thumbnail',array('alt' => wpsc_the_product_title(),'title' => wpsc_the_product_title() ));?>
         </a>
      <?php endif;
      sb_get_images_for_product(wpsc_the_product_id());//...and then display all the rest of the images
else: ?>

Pour que cela fonctionne,  il a créé une nouvelle fonction à mettre dans votre functions.php de votre thème :
function sb_get_images_for_product($id){
   global $wpdb;
   $post_thumbnail = get_post_thumbnail_id();//read the thumbnail id
   $attachments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_parent = $id AND post_type = 'attachment' ORDER BY menu_order ASC"));
   foreach ($attachments as $attachment){
      if ($attachment->ID <> $post_thumbnail){//if we haven't already got the attachment as the post thumbnail
         $image_attributes = wp_get_attachment_image_src($attachment->ID,'thumbnail');?>
	<a rel="lightbox[<?php echo wpsc_the_product_title(); ?>]" href="<?php echo $attachment->guid; ?>" class="<?php echo wpsc_the_product_image_link_classes(); ?>">
	<img src="<?php echo $image_attributes[0]; ?>" alt="<?php echo wpsc_the_product_title(); ?>"/>
	</a>
   <?php }
   }
}

Pour ma part j’ai déjà modifié cette fonction avec une feuille de style pour afficher les autres miniatures sous l’image principale.

Voilà une astuce pour un Multiple images pour WP e-Commerce que je vous transmet  pour vous éviter des heures de recherche.

A bientôt

4 réponses
    • Florent Maillefaud
      Florent Maillefaud dit :

      Je ne vois pas le code que vous avez rentré mais il est possible qu’il ne fonctionne plus suivant la version de WP e-Commerce. Vous pouvez reposter l’erreur et la version que vous utilisez ? Je testerais du coup de mon côté ensuite.

      Répondre
  1. Céline
    Céline dit :

    Super. par contre il faut passer par la modification de fichier via l’éditeur de wordpress, j’ai testé par ftp et ça n’a pas fonctionné.
    Merci pour le tuto

    Répondre

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.