tema4you
@tema4you

Woocommerce как показать сначала те товары в которых есть миниатюры. а в конце товары без миниатюр?

add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );

function custom_woocommerce_get_catalog_ordering_args( $args ) {

	$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) :
		apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );

	if ( 'thumbnail' == $orderby_value ) {
		$args = [
			'orderby'  => 'meta_value_num',
			'meta_key' => '_thumbnail_id',
			'order'    => 'DESC',
		];
	}

	return $args;
}

// Добавим возможность выбора сортировки в настройках каталога woocommerce
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );

// Выведем сортировку на страницах магазина
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );

function custom_woocommerce_catalog_orderby( $sortby ) {
	$sortby['thumbnail'] = __( 'By thumbnails', 'woocommerce' );

	return $sortby;
}


Есть такой код. Он работает оставляя товары на странице магазина при выборе фильтра только с картинками. Мне нужно сделать так что бы в начале выводились товары с картинками, а потом товары без картинок (миниатюр). Буду очень благодарен вашей помощи.
  • Вопрос задан
  • 23 просмотра
Пригласить эксперта
Ответы на вопрос 1
@weart
Без написания кастомного цикла вывода товаров никак.
То есть вам нужно полностью с нуля писать свою страницу товаров, на ней два класса для получения массивов товаров с превью и без, потом массивы объединяем и уже выводим в новом цикле.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы