Hi there!
I’ve put together this thing where you from the backend select products from woocommerce that you want to display on the home page of my website. The problem is that the products get the home page title instead of their product name. I’m using wc_get_template_part to get the product layout and such. This is how my code looks at the moment:
<?php if( have_rows('selected_products') ): ?>
<ul class="w_products products grid-<?php echo $number_by_row; ?>">
<?php woocommerce_product_loop_start(); ?>
<?php
while ( have_rows('selected_products') ) : the_row();
$product_object = get_sub_field('selected_product');
setup_postdata( $product_object );
wc_get_template_part( 'content', 'selectedproduct' );
wp_reset_postdata();
endwhile;
wp_reset_query();
?>
<?php woocommerce_product_loop_end(); ?>
</ul>
<?php endif; ?>
What can I do to fix it?
when you use setup_postdata() the variable name must be $post and it must be called in a way that affect the global $post.
If you are in a template that is loaded using get_template_part() then the global $post is already set up. If not the you must set it up using
global $post;
And you code needs to look like
$post = get_sub_field('selected_product');
setup_postdata($post);