0

I get the product variations each as their own button with below code that I have pieced together. Echo $product->name outputs something like "Product - variation" but I need "Variation price". Price would be entered in description field in the dashboard. I have gone through several related questions and answers but I'm not skilled enough to apply the solutions to my code so help would be appreciated!

 <?php $params = array('posts_per_page' => -1, 'post_type' => 'product_variation', 'order' => 'ASC'); $wc_query = new WP_Query($params); ?> <?php if ($wc_query->have_posts()) : ?> <?php while ($wc_query->have_posts()) : $wc_query->the_post(); ?> <form class="cart" action="<?php the_permalink() ?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>"> <button <?php post_class('button') ?> type="submit"><strong><?php echo $product->name ?> </strong></button> </form> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else: ?> <div> <?php _e( 'No Products' ); ?> </div> <?php endif; ?> 

1 Answer 1

1

OK, so soon after posting I came up with a working solution. With this code I get the price straight from the variation price field, not from the description field as I mentioned in my question.

<?php $params = array('posts_per_page' => -1, 'post_type' => 'product_variation', 'order' => 'ASC'); $wc_query = new WP_Query($params); global $product; ?> <?php if ($wc_query->have_posts()) : ?> <?php while ($wc_query->have_posts()) : $wc_query->the_post(); ?> <form class="cart" action="<?php the_permalink() ?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>"> <button <?php post_class('button') ?> type="submit"><strong><?php echo implode("", $product->get_variation_attributes()); ?> </strong><span style="display: inline-block"><?php echo $product->get_price(); ?></span></button> </form> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else: ?> <div> <?php _e( 'No Products' ); ?> </div> <?php endif; ?> 

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.