В последней версии WooCommerce нет опции, позволяющей включить жесткую обрезку для отдельного изображения продукта в области настроек WooCommerce. Так что я написал функцию в function.php для включения жесткой обрезки для одного изображения.
function ne_theme_setup() {
add_image_size( 'single-product', 600, 600, true );
}
add_action( 'after_setup_theme', 'ne_theme_setup' );
function custom_product_large_thumbnail_size() {
return 'single-product';
}
add_filter('woocommerce_gallery_image_size', 'custom_product_large_thumbnail_size');
этот код работает, но когда я выбираю переменную на одной странице продукта, в это время изображение меняется и показывает несжатую версию изображения.
Как мне решить эту проблему? Я хочу показать одно изображение с разрешением 600X600 с жестким кадрированием для всех вариантов продукта.
Наконец я нашел решение для своей проблемы. Я добавил код ниже в function.php. После этого я регенерировал все изображения с помощью плагина регенерированных миниатюр. Это работает для меня!
add_filter( 'woocommerce_get_image_size_single', 'my_set_product_img_size' );
add_filter( 'woocommerce_get_image_size_shop_single', 'my_set_product_img_size' );
add_filter( 'woocommerce_get_image_size_woocommerce_single', 'my_set_product_img_size' );
function my_set_product_img_size()
{
$size = array(
'width' => 600,
'height' => 600,
'crop' => 1,
);
return $size;
}
Других решений пока нет …