WordPress.org

Ready to get started?Download WordPress

Forums

WP e-Commerce
[resolved] Add author and other datas to a WP E-Commerce product (3 posts)

  1. moodytryme
    Member
    Posted 1 year ago #

    Store URL: http://ricochet-livres-jeunesse.fr/
    WordPress version: 3.5.1
    WP e-Commerce version: 3.8.9.5
    Gold Cart version: No
    Theme: Customized theme

    Hi !

    I’m working on an online bookshop, and I need to add some data to my products such as the author(s), the illustrator(s), the date of publication, etc.

    Is there a way to access to a table of the datas (weight, SKU, …) and add some new datas there ?

    In the end, I would also like to list related products with the same author, or related products published at the same time…
    For now, I’m using Magic Fields to create custom fields, but it doesn’t allow me to do what I want entirely…

    Thanks for your input !

    http://wordpress.org/extend/plugins/wp-e-commerce/

  2. moodytryme
    Member
    Posted 1 year ago #

    I succeeded in showing the related products by author thanks to the Custom taxonomies with Magic Fields 2 plugin.
    Then I used this code from Custom Related Posts using WordPress tags or taxonomies

    <?php // Related Products Taxonomy par illustrateur
    //for in the loop, display all "content", regardless of post_type,
    //that have the same custom taxonomy (e.g. genre) terms as the current post
    $backup = $post;  // backup the current object
    $found_none = '';
    $taxonomy = 'illustrateur';//  e.g. post_tag, category, custom taxonomy
    $param_type = 'illustrateur'; //  e.g. tag__in, category__in, but genre__in will NOT work
    $post_types = get_post_types( array('public' => true), 'names' );
    $tax_args=array('orderby' => 'none');
    $tags = wp_get_post_terms( $post->ID , $taxonomy, $tax_args);
    if ($tags) {
      foreach ($tags as $tag) {
        $args=array(
          "$param_type" => $tag->slug,
          'post__not_in' => array($post->ID),
          'post_type' => $post_types,
          'showposts'=>-1,
          'caller_get_posts'=>1
        );
        $my_query = null;
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) {
    	?>
    	<div class="meme">Du même illustrateur</div>
    	<?php
          while ($my_query->have_posts()) : $my_query->the_post(); ?>
             <div class="wpec-related-product product-<?php echo wpsc_the_product_id(); ?> <?php echo wpsc_category_class(); ?>">
    
                            <?php if(get_option('on_wpec_image') == 'on') : ?>
                                <div class="wpec-related-image" id="related-pro-<?php echo wpsc_the_product_id(); ?>">
                                        <a href="<?php echo wpsc_the_product_permalink(); ?>">
    
                                            <?php if(wpsc_the_product_thumbnail()) : ?>
                                                        <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(100, 100); ?>"/>
                                            <?php else: ?>
                                                        <img class="no-image" id="product_image_<?php echo wpsc_the_product_id(); ?>" alt="No Image" title="<?php echo wpsc_the_product_title(); ?>" src="<?php echo WPSC_CORE_THEME_URL; ?>wpsc-images/noimage.png" width="100" height="100" />
                                            <?php endif; ?>
                                        </a>
                                </div><!--close imagecol-->
                            <?php endif; ?>
    
                                <h5 class="wpec-related-title">
                                        <?php if(get_option('hide_name_link') == 1) : ?>
                                                <?php echo wpsc_the_product_title(); ?>
                                        <?php else: ?>
                                                <a class="wpsc_product_title" href="<?php echo wpsc_the_product_permalink(); ?>"><?php echo wpsc_the_product_title(); ?></a>
                                        <?php endif; ?>
                                </h5>
    
                            <?php if(get_option('on_wpec_price') == 'on') : ?>
                                <div class="product-info">
                                        <div class="pricedisplay <?php echo wpsc_the_product_id(); ?>"><?php _e('Price', 'wpsc'); ?>: <span id='product_price_<?php echo wpsc_the_product_id(); ?>' class="currentprice pricedisplay"><?php echo wpsc_the_product_price(); ?></span></div>
                                </div>
                            <?php endif; ?>
    
                        </div><!-- close default_product_display -->
    
            <?php $found_none = '';
          endwhile;
    	  ?>
    	   <div class="clear"></div>
    	 <?php
        }
      }
    }
    if ($found_none) {
    echo $found_none;
    }
    $post = $backup;  // copy it back
    wp_reset_query(); // to use the original query again
    ?>

    Hope it helps someone !

    Now I need to do the reverse thing, that is to say show all the books written by Author Y in the article regarding his biography.
    The article of an author is in the "blog" query, and I need to call the WP E commerce products query to make it work...
    Right now, here's my result (it's calling the same article, and giving the article a price of 0 €...) :
    http://ricochet-livres-jeunesse.fr/auteurs-illustrateurs/stephanie-heendrickxen/

    Any tips ?

  3. moodytryme
    Member
    Posted 1 year ago #

    I found out how to create related products by author !
    I had to change some parts of my code above.

    1. First, create a custom taxonomy. I used Magic Fields 2 in order to create two taxonomies Auteur and Illustrateur, that I applied both to the Articles post types and the Product Pages post types.

    2. I went to my product articles and I picked the Auteur and Illustrateur of each articles.

    3. I went on my articles which are the biographies of the authors or illustrators of the products. I also checked the same taxonomy.

    4. Then I used this code from Custom Related Posts using WordPress tags or taxonomies while doing some modifications.

    First I deleted this line :

    $post_types = get_post_types( array('public' => true), 'names' );

    and

    changed

    'post_type' => '$post_types',

    into

    'post_type' => 'wpsc-product',

    so that the author article won't appear in the list of related products.

    And here's what I insert in my wpsc-single_product.php and single.php templates :

    <?php // Related Products Taxonomy par illustrateur
    //for in the loop, display all "content", regardless of post_type,
    //that have the same custom taxonomy (e.g. genre) terms as the current post
    $backup = $post;  // backup the current object
    $found_none = '';
    $taxonomy = 'illustrateur';//  e.g. post_tag, category, custom taxonomy
    $param_type = 'illustrateur'; //  e.g. tag__in, category__in, but genre__in will NOT work
    $tax_args=array('orderby' => 'none');
    $tags = wp_get_post_terms( $post->ID , $taxonomy, $tax_args);
    if ($tags) {
      foreach ($tags as $tag) {
        $args=array(
          "$param_type" => $tag->slug,
          'post__not_in' => array($post->ID),
          'post_type' => 'wpsc-product',
          'showposts'=>-1,
          'caller_get_posts'=>1
        );
        $my_query = null;
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) {
    	?>
    	<div class="meme">Du même illustrateur</div>
    	<?php
          while ($my_query->have_posts()) : $my_query->the_post(); ?>
             <div class="wpec-related-product product-<?php echo wpsc_the_product_id(); ?> <?php echo wpsc_category_class(); ?>">
    
                            <?php if(get_option('on_wpec_image') == 'on') : ?>
                                <div class="wpec-related-image" id="related-pro-<?php echo wpsc_the_product_id(); ?>">
                                        <a href="<?php echo wpsc_the_product_permalink(); ?>">
    
                                            <?php if(wpsc_the_product_thumbnail()) : ?>
                                                        <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(100, 100); ?>"/>
                                            <?php else: ?>
                                                        <img class="no-image" id="product_image_<?php echo wpsc_the_product_id(); ?>" alt="No Image" title="<?php echo wpsc_the_product_title(); ?>" src="<?php echo WPSC_CORE_THEME_URL; ?>wpsc-images/noimage.png" width="100" height="100" />
                                            <?php endif; ?>
                                        </a>
                                </div><!--close imagecol-->
                            <?php endif; ?>
    
                                <h5 class="wpec-related-title">
                                        <?php if(get_option('hide_name_link') == 1) : ?>
                                                <?php echo wpsc_the_product_title(); ?>
                                        <?php else: ?>
                                                <a class="wpsc_product_title" href="<?php echo wpsc_the_product_permalink(); ?>"><?php echo wpsc_the_product_title(); ?></a>
                                        <?php endif; ?>
                                </h5>
    
                            <?php if(get_option('on_wpec_price') == 'on') : ?>
                                <div class="product-info">
                                        <div class="pricedisplay <?php echo wpsc_the_product_id(); ?>"><?php _e('Price', 'wpsc'); ?>: <span id='product_price_<?php echo wpsc_the_product_id(); ?>' class="currentprice pricedisplay"><?php echo wpsc_the_product_price(); ?></span></div>
                                </div>
                            <?php endif; ?>
    
                        </div><!-- close default_product_display -->
    
            <?php $found_none = '';
          endwhile;
    	  ?>
    	   <div class="clear"></div>
    	 <?php
        }
      }
    }
    if ($found_none) {
    echo $found_none;
    }
    $post = $backup;  // copy it back
    wp_reset_query(); // to use the original query again
    ?>

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic