Avisos
Vaciar todo

Orden aleatorio de productos en el módulo tienda  

 
David
 David
Usuario experto

Muy buenas,

Os explico mi duda:

Actualmente cuando un cliente navega por cualquiera de los productos, por ejemplo:

https://urika.es/producto/sandalia-cuna-tira-gus-multisuela/

Abajo en productos relacionados aparece una serie de productos. 

Me gustaría que estos productos fuesen cambiando a medida que el cliente va navegando a través de ellos, y que no fuesen siempre los mismos, ya que se pierde totalmente el embudo, pero no encuentro esta opción en el módulo tienda de DIVI. Me gustaría, por ejemplo, en el caso del calzado, que aparecieran aleatoriamente productos de dicha categoría, y no de forma fija.

¿Es esto posible?

¿Afectaría de algún modo al cacheado de la página?

 

Mil gracias como siempre.

 

 

Contenido solo visible a usuarios registrados

Citar
Respondido : 20/05/2021 9:00 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Efectivamente, si tienes un plugin de cache siempre verás los mismos productos, así el plugin de productos relacionados los cambie.

Veo que de momento no hay una manera de excluir secciones de la página de la cache y sólo se puede a nivel de página, según la documentación oficial:
https://docs.woocommerce.com/document/configuring-caching-plugins/

Saludos.

ResponderCitar
Respondido : 20/05/2021 9:21 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Que tal David,

Los productos relacionados se muestran tomando en cuenta dichos factores de relacion los cuales pueden ser categorías en común, up-sells o cross-sells, para que se muestren de forma aleatoria los productos que cumplan estas condiciones puedes probar incluyendo el siguiente código en tu archivo functions.php pero mas recomendable utilizando el siguiente plugin https://es-co.wordpress.org/plugins/code-snippets/

function get_related_custom( $id, $limit = 5 ) {
    global $woocommerce;

    // Related products are found from category and tag
    $tags_array = array(0);
    $cats_array = array(0);

    $terms = wp_get_post_terms($id, 'product_cat');
    foreach ( $terms as $term ) { $cats_array[] = $term->term_id; }

    // Don't bother if none are set
    if ( sizeof($cats_array)==1 && sizeof($tags_array)==1 ) return array();

    // Meta query
    $meta_query = array();
    $meta_query[] = $woocommerce->query->visibility_meta_query();
    $meta_query[] = $woocommerce->query->stock_status_meta_query();

    // Get the posts
    $related_posts = get_posts( apply_filters('woocommerce_product_related_posts', array(
        'orderby'        => 'rand',
        'posts_per_page' => 100,
        'post_type'      => 'product',
        'fields'         => 'ids',
        'meta_query'     => $meta_query,
        'tax_query'      => array(
            'relation'      => 'OR',
            array(
                'taxonomy'     => 'product_cat',
                'field'        => 'id',
                'terms'        => $cats_array
            ),
            array(
                'taxonomy'     => 'product_tag',
                'field'        => 'id',
                'terms'        => $tags_array
            )
        )
    ) ) );
    $related_posts = array_diff( $related_posts, array( $id ));
    return $related_posts;
}
add_action('init','get_related_custom');

Nos comentas si te ha funcionado, Saludos

ResponderCitar
Respondido : 20/05/2021 9:25 pm