Мне кажется проблема в адаптивном теге и том, как woocommerce распределяет какое изображение какому устройству отдавать.
Если речь идет только а миниатюрах в цикле товара, то проще всего перезаписать их вывод:
function woocommerce_template_loop_product_thumbnail(){
$product_img = get_the_post_thumbnail_url();
echo '
<div class="product-image" style="background-image:url(' . $product_img . ');"></div>
';
}
В этом коде я миниатюру вывожу в качестве фона, мне лично так проще управлять потом внешним видом, указываешь просто родителю высоту, а ,product-image: background-size: contain - и всех делов