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 restezconnectes le bon bout de code qui va bien !

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

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 que je vous transmet  pour vous éviter des heures de recherche.

A bientôt

Leave a comment