Hola a todos,
Tengo un sitio web de comercio electrónico que se ejecuta en WooCommerce, y he configurado productos relacionados para mostrar en cada página de productos. Cada uno de mis productos pertenece a dos categorías: una categoría principal y una subcategoría, y cada producto tiene al menos una etiqueta.
Actualmente, los productos relacionados se muestran en función de la categoría del producto, que es el comportamiento predeterminado. También lo he configurado para mostrar 12 productos relacionados, pero esto es lo que quiero lograr:
- Prioridad a las etiquetas: Primero, quiero que los productos relacionados se muestren en función de la etiqueta del producto. Si hay menos de 12 productos que coinciden con la etiqueta, quiero que los lugares restantes se llenen de productos de la categoría.
- Solo por categoría: Si el producto no tiene etiquetas, los productos relacionados solo deben seleccionarse en función de la categoría.
He agregado el siguiente código personalizado a mi functions.php
Para lograr esto, pero no funciona como se esperaba:
función custom_related_products_args ($ args) {
Producto Global $;
// Get the current product's ID
$product_id = $product->get_id();
// Get the current product's tags
$tags = wp_get_post_terms( $product_id, 'product_tag', array( 'fields' => 'ids' ) );
// If the product has tags, filter related products by tags first
if ( ! empty( $tags ) ) {
$args['tax_query'] = array(
array(
'taxonomy' => 'product_tag',
'field' => 'term_id',
'terms' => $tags,
),
);
}
return $args;
}
add_filter (‘wooCommerce_related_products_args’, ‘custom_related_products_args’);
¿Alguien puede ayudarme a ajustar este código para lograr la funcionalidad que quiero? ¡Se agradecería cualquier consejo o sugerencia!