В WooCommerce до версии 3.3 этот код работал правильно:
add_image_size( 'preview', $width = 3072, $height =3072, $crop = false );
$post_thumbnail_id = get_post_thumbnail_id( $post->ID );
$filemeta = wp_get_attachment_metadata( $post_thumbnail_id, FALSE );
if ($filemeta['width']>3071 || $filemeta['height']>3071){
$thumbnail_size = apply_filters( 'woocommerce_product_thumbnails_large_size', 'preview' );
}else{
$thumbnail_size = apply_filters( 'woocommerce_product_thumbnails_large_size', 'large' );
}
Этот код был добавлен, чтобы показать посетителю предварительный просмотр изображения разумного размера без использования исходного полноразмерного изображения. Миниатюры показаны с водяным знаком (не сейчас, но это другое дело).
Как уже говорилось, WooCommerce изменила способ обработки эскизов, и код больше не работает. Как мне заставить его снова работать в самой последней версии Woo?
Для завершения: см. эту ветку.
Любая помощь очень ценится.
РЕДАКТИРОВАТЬ 2018-06-27
Как оказалось, WooCommerce полностью изменил product-image.php в версии 3.3. Я действительно не знаю, как добиться того, чего хочу. Вкратце: я не хочу использовать полноразмерное изображение на странице своего продукта или в лайтбоксе. Приведенный выше код работал с предыдущей версией WC. Был добавлен эскиз (макс. 3072 x 3072 пикселей) под названием «предварительный просмотр». Код проверил, существует ли эта миниатюра, и если да, то использовал ее. Когда «предварительный просмотр» большого пальца не существует, он использует «большой» размер эскиза по умолчанию. Как заставить работать в версии 3.3 и новее .... Я застрял.






add_image_size( 'preview', 3072, 3072, false );
$post_thumbnail_id = get_post_thumbnail_id( $post->ID );
$filemeta = wp_get_attachment_metadata( $post_thumbnail_id, FALSE );
function callbackFunc(){
//set logic
if (true){
//do whatever you want
}
}
apply_filters( 'woocommerce_product_thumbnails_large_size', 'callbackFunc' );
к сожалению, это не работает. Как оказалось, WC переработал файл product-image.php таким образом, что мой код (и, следовательно, ваш) не сработает. Остались идеи?