Mostrar ventas cruzadas de Woocommerce en la página de producto individual
22 jun 2017, 14:32:48
Vistas: 20K
Votos: 7
Estoy tratando de mostrar las ventas cruzadas en una página de producto individual en lugar de en el carrito:
Hasta ahora he probado el siguiente código:
<?php do_action( 'woocommerce_after_single_product_summary_data_tabs' ); ?>
<?php if ( $product->get_upsell_ids() ) : ?>
<div class="single_product_summary_upsell">
<?php do_action( 'woocommerce_after_single_product_summary_upsell_display' ); ?>
</div><!-- .single_product_summary_upsells -->
<?php endif; ?>
<?php if ( $product->get_cross_sell_ids() ) : ?>
<div class="single_product_summary_upsell">
<?php do_action( 'woocommerce_after_single_product_summary_upsell_display' ); ?>
</div><!-- .single_product_summary_upsells -->
<?php endif; ?>
<div class="single_product_summary_related">
<?php do_action( 'woocommerce_after_single_product_summary_related_products' ); ?>
</div><!-- .single_product_summary_related -->
</div><!-- .columns -->
Sin embargo, esto solo mostrará ventas sugeridas debajo de ventas sugeridas, por lo que es el mismo contenido dos veces. No estoy seguro de qué acción usar en lugar de
do_action( 'woocommerce_after_single_product_summary_upsell_display' ); ?>

Alex Gogl
171
Todas las respuestas a la pregunta
2
2
add_action('woocommerce_after_single_product_summary', 'mostrar_productos_cruzados_en_producto_individual', 30);
function mostrar_productos_cruzados_en_producto_individual(){
$productos_cruzados = get_post_meta( get_the_ID(), '_crosssell_ids', true);
if(empty($productos_cruzados)){
return;
}
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'post__in' => $productos_cruzados
);
$productos = new WP_Query( $args );
if( $productos->have_posts() ) :
echo '<div class="cross-sells"><h2>Productos Relacionados</h2>';
woocommerce_product_loop_start();
while ( $productos->have_posts() ) : $productos->the_post();
wc_get_template_part( 'content', 'product' );
endwhile; // Fin del loop.
woocommerce_product_loop_end();
echo '</div>';
endif;
wp_reset_postdata();
}

itzmekhokan
241
23 jun 2017 09:25:23
Comentarios
Ese código va por buen camino, me gusta mucho más que personalizar un tema. Solo necesito hacer algunas modificaciones en los estilos y debería funcionar. ¿Hay alguna manera sin declaraciones absolutas de clases? ¿Algo como sin la parte <div class="..."></div>?

24 jun 2017 13:07:27
1
Encuentra este código y elimínalo
1: Obtén los IDs de los productos de venta cruzada usando la clave meta '_crosssell_ids'.
<?php
/* productos de venta cruzada */
$crosssell_ids = get_post_meta( get_the_ID(), '_crosssell_ids' );
$crosssell_ids=$crosssell_ids[0];
?>
- Recorre los productos por ID
if(count($crosssell_ids)>0){
$args = array( 'post_type' => 'product', 'posts_per_page' => 10, 'post__in' => $crosssell_ids );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
?><a href='<?php the_permalink(); ?>'><?php
the_post_thumbnail( 'thumbnail' );
the_title();
?></a><?php
endwhile;
}

Alpesh Rathod
111
22 jun 2017 14:45:10
Preguntas relacionadas
3
respuestas