Hi great theme,
I am using the Product slider on a page and i have selected multiple categories with the sort by most recent option selected.
However, I would like for this shortcode to show only 1 (the most recent) item/product from each of the selected categories. Could you please help with a function that would enable the product slider loop only the most recent item from the selected categories.
Awaiting your response.
Hey adotopanuga,
Thank you for using Enfold.
Please try this filter in the functions.php file:
// get the first product in each category
add_filter('avia_product_slide_query', 'avia_product_slide_query_mod', 10, 2);
function avia_product_slide_query_mod($query, $params) {
$products = array();
$ids = array();
if(!empty($params['categories']))
{
$terms = explode(',', $params['categories']);
}
if(!empty($terms))
{
foreach( $terms as $term )
{
$args = array(
'posts_per_page' => 1,
'post_type' => 'product',
'no_found_rows' => true,
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
'tax_query' => array(
array(
'taxonomy' => $params['taxonomy'],
'field' => 'id',
'terms' => $term
)
)
);
$products[] = get_posts($args)[0];
}
}
$products = array_unique($products, SORT_REGULAR);
if(!empty($products))
{
foreach( $products as $product )
{
$ids[] = $product->ID;
}
}
$query['post__in'] = $ids;
return $query;
}
Best regards,
Ismael