Enrique J. Ros

Productos relacionados en WooCommerce: cómo personalizarlos y mejorarlos

Una característica que pide mucho la gente es el poder personalizar los productos relacionados en WooCommerce.

Sin duda, la de los productos relacionados es una buena característica de WooCommerce: aumenta el número de páginas vistas, el tiempo de permanencia en la web y, en consecuencia, las ventas. Además la automatización de los elementos mostrados en este apartado en nos facilita la tarea y nos ahorra tiempo. No tenemos por qué preocuparnos de nada. En teoría.

Sin embargo tiene también algunos puntos débiles, sobre todo en el aspecto de la personalización: no permite limitar los productos mostrados en cuanto a concordancia sólo por etiquetas o sólo por categorías, ni el número de productos que se mostrarán, ni mucho menos permite elegir manualmente cuáles mostrar para un producto concreto.

Afortunadamente hay algunas formas de hacerlo, aunque WooCommerce no ofrezca esas opciones ni en el apartado de configuración ni en la ficha de producto. Vamos a ver cómo conseguirlo.

Qué tiene en cuenta WooCommerce para mostrar un producto como relacionado

Como decía más arriba WooCommerce tiene en cuenta, para mostrar los productos relacionados, tanto las categorías como las etiquetas. Esto, en la mayoría de las ocasiones, es un sistema muy eficaz y que funciona bastante bien.

Sin embargo, hay veces en que, según cómo establezcamos unas y otras, esto podría no tener mucho sentido.

Por ejemplo, si tenemos un ecommerce de ropa y establecemos categorías como «pantalón», «falda», «vestido», «camiseta», etcétera y, para facilitar las búsquedas o la selección por estilos, etiquetas como «verde», «azul», «verano», «entretiempo» y cualquier otra que se te pueda ocurrir.

En este caso no tiene mucho sentido que el cliente esté viendo un pantalón azul (seguramente está buscando comprarse un pantalón) y le aparezca como relacionado un jersey de lana sólo porque es también azul. Lo ideal en este caso es que se utilizaran sólo categorías para establecer qué productos se muestran como relacionados.


Productos perfectamente relacionados gracias a una correcta asignación de categorías y etiquetas

O a la inversa. Podemos tener una tienda online de productos deportivos y que las categorías sean «casco», «camiseta», «calzado», etcétera, y las etiquetas «running», «ciclismo», «fútbol», y así.

No tendría sentido entonces que a alguien que está buscando un casco para ciclismo se le mostrase como relacionado un casco de, por ejemplo, motociclismo. Lo correcto es que se le muestren otros productos para ciclismo, ¿no?

En fin, ya sé que este ejemplo viene un poco forzado, ya que el problema estaría en que, en este caso, se han establecido mal las categorías y habría que estudiar una forma más eficiente de hacerlo, pero entiendes lo que quiero decir, ¿verdad?

Tener en cuenta sólo las categorías o sólo las etiquetas

Bueno, si tu problema es éste puedes respirar tranquilo: aunque WooCommerce no permite (en las opciones de configuración) desechar las categorías o las etiquetas a la hora de seleccionar los productos relacionados, la solución para conseguirlo es muy sencilla.

Sí, es cierto que hay que utilizar código, pero no te preocupes: te lo voy a dar masticado y listo para usar. 🙂

Primera opción: quieres que para los productos relacionados que se muestran en tu tienda WooCommerce tenga en cuenta las categorías, pero no las etiquetas.

Bien, tienes que ir al archivo de funciones del tema que estés utilizando (Apariencia > Editor > funcions.php), o (mucho más recomendable) en tu plugin de funciones personalizadas, y añadir este código al final del todo (recuerda siempre, antes de modificar nada, realizar copias de seguridad):

/* Mostrar productos relacionados en WooCommerce sólo por categorías */
add_filter ('woocommerce_product_related_posts_relate_by_tag', function () {
    return false;
});

Así, sin más, sólo copiar y pegar al final del archivo de funciones y listo. Dejar el comentario (lo que está entre «/*» y «*/») para recordar en un futuro para qué sirve cada cosa. Créeme, con el tiempo empiezas a acumular funciones personalizadas y es fácil olvidarse. 😉

Y la segunda opción: quieres que se muestren los productos personalizados teniendo en cuenta las etiquetas, pero no las categorías. Muy bien, en ese caso el código es el siguiente:

/* Mostrar productos relacionados en WooCommerce sólo por etiquetas */
add_filter ('woocommerce_product_related_posts_relate_by_category', function () {
    return false;
});

Y listo. Ya lo tienes. ¿Ves qué solución más fácil y rápida?

Cambiar el número de productos relacionados que muestra WooCommerce

Vamos a ver más cosas que se pueden personalizar aunque no estén incluidas como opción ni en los ajustes de WooCommerce ni en las fichas de producto. Entramos ahora con el número de productos relacionados que se mostrarán en la ficha de producto.

Por defecto se muestran cuatro, pero esto no es algo que esté ni mucho menos grabado en piedra: se puede cambiar. Para ello también es necesario tocar algo de código, pero de nuevo te lo facilito.

Se trata otra vez de ir al archivo de funciones y pegar un trozo de código al final, que será el siguiente:

/* Cambiar el número máximo de productos relacionados en la ficha de producto */
function ejr_woo_limite_relacionados () {
  global $product;

    $args = array (
        'post_type'             => 'product',
        'no_found_rows'         => 1,
        'posts_per_page'        => 4,
        'ignore_sticky_posts'   => 1,
        'orderby'               => $orderby,
        'post__in'              => $related,
        'post__not_in'          => array($product->id)
    );
    return $args;
}
add_filter ('woocommerce_related_products_args', 'ejr_woo_limite_relacionados');

Bien, si pegas eso así tal cual está no va a cambiar nada: seguirán mostrándose un máximo de cuatro productos relacionados en la ficha del producto. Pero ahora puedes cambiar ese número fácilmente. Basta que cambies donde dice:

        'posts_per_page'        => 4,

por el número que te dé la gana. Y ya lo tienes. A partir de ese momento WooCommerce tomará la cantidad que tú hayas puesto como número máximo para los productos relacionados.

Más control: Custom related products for WooCommerce

Esto está muy bien si queremos excluir las etiquetas o las categorías a la hora de filtrar los productos relacionados, pero ¿y si queremos un mayor control? Porque podríamos querer determinar nosotros manualmente cuáles aparecerán para un producto concreto.

Pues bien, como de costumbre cuando trabajamos con WordPress y necesitamos algo que no está incluido por defecto, los plugins salen al rescate. Custom related products for WooCommerce, para ser exactos.

Se trata de un plugin muy sencillo, de los de activar y listo, pero muy potente y que nos permite hacer exactamente eso: elegir en cada producto qué otros productos de nuestra tienda aparecerán en la sección de productos relacionados.

Para ello sólo tenemos que editar el producto y, en la ficha de producto, ir hasta la sección de productos vinculados.

Verás entonces que ahí ha aparecido, bajo las cajas de texto de las up-sells y cross-sells, un nuevo cuadro: el de Productos Relacionados.

Si no rellenas nada en esa casilla WooCommerce establecerá las relaciones como hasta ahora: basándose en categorías y etiquetas (a no ser que hayas utilizado alguno de los códigos que menciono más arriba, en el apartado anterior).

Sin embargo si pones algo, aunque sólo sea un producto, WooCommerce ignorará sus filtros y en la ficha de producto aparecerá en la sección de productos relacionados exactamente lo que tú hayas establecido ahí.

Pero ojo, recuerda que sólo se mostrarán hasta cuatro, por muchos que coloques. Claro, que ya sabes cómo hacer que aparezcan más, ¿no? 😉

Como siempre, espero que este contenido te haya sido útil. Para cualquier duda que tengas (sobre este tema o sobre cualquier otro relacionado con WordPress o con WooCommerce) tienes a tu disposición los comentarios y el formulario de contacto.

Salir de la versión móvil