Как удалить миниатюру продукта, если к продукту добавлено только одно изображение WooCommerce

Хорошо, мне было интересно, могу ли я удалить миниатюру продукта с одной страницы продукта, если продукт имеет только одно изображение (то есть только изображение продукта). Так что, когда пользователь просматривает продукт только с одним изображением, ему не нужно видеть миниатюру, но продукты с изображением продукта и изображениями галереи продуктов, миниатюра может отображаться.

Есть ли способ добиться этого?

Я пробовал следующее, но у меня это не сработало (хотя код предназначен для полного удаления миниатюры);

function remove_gallery_thumbnail_images() {
    if ( is_product() ) {
        remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
    }
}
add_action('loop_start', 'remove_gallery_thumbnail_images');

Как я могу достичь этого? отключите миниатюру, если продукт имеет только одно изображение, но отобразите миниатюры, если продукт имеет несколько изображений.

Любая помощь очень приветствуется.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
1
0
2 347
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обычно woocommerce не показывает галерею, если в ней нет миниатюр.

В вашем случае вы можете попробовать использовать следующее:

add_action( 'woocommerce_product_thumbnails', 'enable_gallery_for_multiple_thumbnails_only', 5 );
function enable_gallery_for_multiple_thumbnails_only() {
    global $product;

    if ( ! is_a($product, 'WC_Product') ) {
        $product = wc_get_product( get_the_id() );
    }

    if ( empty( $product->get_gallery_image_ids() ) ) {
        remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
    }
}

Или, если изображение включено в качестве эскиза в галерею, вы можете заменить его в функции:

if ( empty( $product->get_gallery_image_ids() ) ) {

следующей строкой:

if ( sizeof( $product->get_gallery_image_ids() ) == 1 ) {

Код находится в файле functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.


Вы также можете скрыть галерею с помощью встроенного CSS:

add_action( 'woocommerce_before_single_product_summary', 'enable_gallery_for_multiple_thumbnails_only', 5 );
function enable_gallery_for_multiple_thumbnails_only() {
    global $product;

    if ( ! is_a($product, 'WC_Product') ) {
        $product = wc_get_product( get_the_id() );
    }

    if ( empty( $product->get_gallery_image_ids() ) ) {
        echo '<style> ol.flex-control-thumbs { display:none; } </style>';
    }
}

Или, если изображение включено в качестве эскиза в галерею, вы можете заменить его в функции:

if ( empty( $product->get_gallery_image_ids() ) ) {

следующей строкой:

if ( sizeof( $product->get_gallery_image_ids() ) == 1 ) {

Код находится в файле functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.

All this works on themes that doesn't make related customizations.

Спасибо @LoicTheAztec ... Версия CSS - это то, на что я пошел, моя тема удалила хук "woocommerce_product_thumbnails" и добавила их.

Kolawole Emmanuel Izzy 21.05.2019 15:19

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