Обычно 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>';
}
}
Или, если изображение включено в качестве эскиза в галерею, его можно заменить вfunction:
if( empty( $product->get_gallery_image_ids() ) ) {
следующей строкой:
if( sizeof( $product->get_gallery_image_ids() ) == 1 ) {
Код находится в файле functions.php вашей активной дочерней темы (или активной темы).Протестировано и работает.
Все это работает на темы, которые не связаны с настройками.