Показать условный размер миниатюр в wooccommerce

В 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 и новее .... Я застрял.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
47
1

Ответы 1

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 таким образом, что мой код (и, следовательно, ваш) не сработает. Остались идеи?

A3O 27.06.2018 05:58

Другие вопросы по теме