array of { key, label, img, slug }
$cats = array(
‘oversized’ => array(
array(‘key’=>’anime-drop’,’label’=>’Anime Drop’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/ANIME-V2-OK-14-01-scaled.png’,’slug’=>’anime-drop-oversized-tshirt’),
array(‘key’=>’gear-and-grit’,’label’=>’Gear & Grit’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/CHECO-PEREZ-F1-scaled.png’,’slug’=>’gear-and-grit-oversized-tshirt’),
array(‘key’=>’streetwear’,’label’=>’Streetwear’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/104-scaled.png’,’slug’=>’street-wear-oversized-tshirt’),
array(‘key’=>’icon-series’,’label’=>’Icon Series’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/KOBE-Art3-scaled.png’,’slug’=>’icon-series’),
array(‘key’=>’comic-drop’,’label’=>’Comic Drop’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/002-178-scaled.png’,’slug’=>’comic-drop-oversized-tshirt’),
),
‘regular’ => array(
array(‘key’=>’anime-drop’,’label’=>’Anime Drop’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/ANIME-V2-OK-14-01-scaled.png’,’slug’=>’anime-drop’),
array(‘key’=>’gear-and-grit’,’label’=>’Gear & Grit’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/CHECO-PEREZ-F1-scaled.png’,’slug’=>’gear-and-grit-regular-tshirt’),
array(‘key’=>’streetwear’,’label’=>’Streetwear’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/104-scaled.png’,’slug’=>’street-wear-regular-tshirt’),
array(‘key’=>’comic-drop’,’label’=>’Comic Drop’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/002-178-scaled.png’,’slug’=>’comic-drop-regular-tshirt’),
array(‘key’=>’memeverse’,’label’=>’Memeverse’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/craiyon_011055_image.png’,’slug’=>’memeverse-regular-tshirt’),
array(‘key’=>’cartoon-club’,’label’=>’Cartoon Club’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/PICAPAU.png’,’slug’=>’cartoon-club’),
array(‘key’=>’shadow-drop’,’label’=>’Shadow Drop’,’img’=>’https://clovik.com/wp-content/uploads/2025/06/shape-49-scaled.png’,’slug’=>’shadow-drop’),
)
);
ob_start();
?>
Find your style
No products found for this selection.
product_cat slug ‘oversized-tshirt’, regular => ‘regular-tshirt’
$fit_tax_slug = ($fit === ‘regular’) ? ‘regular-tshirt’ : ‘oversized-tshirt’;
// Build tax query: products that are in both categories (fit taxonomy term + subcategory term)
$tax_query = array(‘relation’ => ‘AND’,
array(
‘taxonomy’ => ‘product_cat’,
‘field’ => ‘slug’,
‘terms’ => array($fit_tax_slug),
)
);
if ($subslug) {
$tax_query[] = array(
‘taxonomy’ => ‘product_cat’,
‘field’ => ‘slug’,
‘terms’ => array($subslug),
);
}
$args = array(
‘post_type’ => ‘product’,
‘posts_per_page’ => 12,
‘paged’ => $paged,
‘tax_query’ => $tax_query,
);
$q = new WP_Query($args);
if ($q->have_posts()) {
// We’ll output blocks with class .clv-product-block so JS can append them
while ($q->have_posts()) {
$q->the_post();
global $product;
// Fallback thumbnail
$thumb = has_post_thumbnail() ? get_the_post_thumbnail_url(get_the_ID(), ‘medium’) : wc_placeholder_img_src();
$title = get_the_title();
$price = $product ? $product->get_price_html() : ”;
$permalink = get_permalink();
// Output a compact block (kept simple & theme-agnostic)
echo ‘‘;
echo ‘
‘; // card
echo ‘
‘; // block
}
wp_reset_postdata();
} else {
echo ‘No products found for this selection.
‘;
}
wp_die();
}
add_action(‘wp_ajax_clovik_load_products’,’clovik_load_products_ajax’);
add_action(‘wp_ajax_nopriv_clovik_load_products’,’clovik_load_products_ajax’);