Afficher plusieurs images pour un produit avec wp-ecommerce

WP-Ecommerce est un plugin de E-commerce pour WordPress. Il est vraiment idéale sur le papier puisqu’il permet de construire un système de E-commerce (backend et frontend) sans rien coder. Dans la pratique le plugin se révèle un peu moins idyllique, je pense que tous ceux qui ont essayé une fois dans leur vie de personnaliser un thème WP-Ecommerce comprendrons de quoi je parle.

Aujourd’hui je vais vous exposer un problème auquel j’ai été confronté, qui paraît très bête mais qui fût assez chronophage pour moi.

Le problème dans WP-Ecommerce

Le backend du plugin permet d’uploader plusieurs photo pour un produit mais le front-end ne propose aucune methode pour aller les chercher et les afficher. En fait, WP-Ecommerce propose un add-on payant « Gold Cart » pour cela mais on s’entend que ce n’est pas une solution.

La solution pour afficher plusieurs images

Voici la marche à suivre, il vous faudra tout d’abord repérer le code suivant dans le fichier « wpsc-single_product.php ».

< ?php if ( wpsc_the_product_thumbnail() ) : ?>
        
      < ?php if ( function_exists( 'gold_shpcrt_display_gallery' ) )
         echo gold_shpcrt_display_gallery( wpsc_the_product_id() );
      ?>
   < ?php else: ?>

Ensuite vous pourrez remplacer le code ci-dessus par :

< ?php if ( wpsc_the_product_thumbnail()) ://if the product has any images...
      if (has_post_thumbnail()):?>//...display the thumbnail if there is one...
          < ?php echo get_the_post_thumbnail(wpsc_the_product_id(),'thumbnail',array('alt' => wpsc_the_product_title(),'title' => wpsc_the_product_title() ));?> 
      < ?php endif;
      sb_get_images_for_product(wpsc_the_product_id());//...and then display all the rest of the images
else: ?>

Puis ajouter dans le fichier « function.php » de votre thème la fonction suivante :

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');?>
	  
   < ?php }
   }
}

Conclusion

En conclusion, j’adore WP-Ecommerce pour plein de choses, ce plugin est vraiment cool tant qu’on a pas à rentrer dans le code. Une fois les mains dans le cambouis, on peut vite perdre patience. En plus de ça la doc n’est pas toujours très claire. Cependant grâce à une communauté plutôt importante, on trouve souvent des solutions à nos problèmes. Donc voici ma participation en français 😉

 

Ressources

5 Commentaires

anouk

A propos12 ans ago

Bonjour j'ai essayé dans mon site mais cela n'a pas fonctionné... ça m'a affiché une page blanche avec un message d'erreur. Je suis un peu novice alors je me demande s'il faut remplacer tout le code <a rel="" class="" href=""> <img class="product_image" id="product_image_" alt="" title="" src=""/> par le code que vous indiquez, et s'il y a un endroit particulier dans le fichier function.php où il faut mettre le code pour la fonction ? en vous remerciant d'avance pour votre réponse

Répondre

Imatt

A propos12 ans ago

Bonjour Anouk, Merci de ton commentaire ! Si tu suis bien le tutoriel pas à pas, ça devrait fonctionné. Il s'agit bien de remplacer le code pour la première partie. Pour le fichier function.php, tu peux ajouter le code à la fin du fichier. Attention au copier / coller qui peuvent transformer des guillemet en caractères spéciaux. Pour être sûr, tu peux effacer les guillemets une fois coller et les retaper. tu vois ce que je veux dire ? Bon courage !

Répondre

Charly

A propos12 ans ago

Bonjour, J'ai suivi le démarche à suivre, ça fonctionne bien, mais par contre il me récupère des images en 150 x 150, et je n'arrive pas à modifier ça, j'ai essayé de modifier les tailles de thumbnail dans les param wp e-commerce et dans les param du wordpress en général, rien ne change Suariez-vous d'où sort ce 150 x 150 ? En vous remerciant

Répondre

Imatt

A propos12 ans ago

Cool, tu devrais être capable de modifier ça dans le style du thème. Fichier style.css dans ton thème. Tes images on généralement une class, qui défini souvent la taille (width & height). Si tu ne vois pas de quoi je parle, fais moi signe ...

Répondre

Sébastien

A propos11 ans ago

Bonjour, pour ma part, j'ai essayé et j'ai cette erreur quand je vais sur la page du produit : Warning: Missing argument 2 for wpdb::prepare(), called in C:\wamp\www\wordpress2\wp-content\themes\magazine-style\functions.php on line 292 and defined in C:\wamp\www\wordpress2\wp-includes\wp-db.php on line 992

Répondre

Laisser un commentaire

Please be polite. We appreciate that.
Your email address will not be published and required fields are marked