Przycinanie głównego obrazu w Woocommerce 3.3+

W wersji Woocommerce 3.3 nastąpiło wiele zmian. Jedną z nich jest sposób zmiany rozmiarów obrazu głównego oraz miniaturek. Podczas, gdy do tej pory można było tego dokonać w ustawieniach woocommerce, teraz należy udać się do ustawień szablonu: Wygląd -> Personalizacja -> Woocommerce

Rozmiary obrazów możemy zadeklarować także za pomocą funkcji add_theme_support w następujący sposób:

add_theme_support( 'woocommerce', array(
 'thumbnail_image_width' => 250,
 'single_image_width' => 350,
) );

Problem pojawia się, gdy chcemy, by nasz główny obraz został przycięty w zastępstwie rozmiaru oryginalnego. Niestety jak widać na zrzucie powyżej, widnieje informacja: Rozmiar używany dla głównego obrazka na stronie produktu. Te obrazki nie będą przycinane.

Oznacza to, iż nie mamy wpływu na przycinanie z poziomu ustawień szablonu. W takim przypadku musimy użyć filtru, dodając go do functions.php zmieniając rozmiar obrazu głównego oraz aktywując tryb przycinania:

add_filter( 'woocommerce_get_image_size_single', 'own_size_woocommerce_mainimage_wpgeek' );
function own_size_woocommerce_mainimage_wpgeek()
{
    $size = array(
        'width'  => 300,
        'height' => 300,
        'crop'   => 1,
    );
    return $size;
}

Jeśli przed zmianami posiadaliśmy już produkty w naszym sklepie, należy zregenerować rozmiary obrazów, np. za pomocą wtyczki Regenerate Thumbnails.