Skip to content

WooCommerce: Products with Images first

//==============================================================================
//WOOCOMMERCE - ARCHIVES - products with image first

function custom_woocommerce_images_first_ordering_args( $q ) {
	$orderby_value = isset( $_GET['orderby'] ) ? 
		wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
	if ( 'images_first' == $orderby_value ) {
		$q->get( 'meta_key', '_thumbnail_id' );
		$q->set('orderby', 'meta_value');
		$q->set('order', 'DESC');
		$q->set( 'meta_query', 
				array(  'relation' => 'OR',
					  array(
						  'orderby' => 'meta_value',
						  'order' => 'DESC',
						  'key' => '_thumbnail_id',
						  'compare' => 'NOT EXISTS',
						  //'value' => '0'
					  ),
					  array(
						  'key' => '_thumbnail_id',
						  'compare' => '>=',
						  'value' => '0',       
						  'orderby' => 'meta_value',
						  'order' => 'DESC'
					  )),
			   ); 
	}
	return $q;
}
add_filter( 'woocommerce_product_query', 'custom_woocommerce_images_first_ordering_args' );

function custom_woocommerce_catalog_orderby_images_first( $sortby ) {
	$sortby['images_first'] = 'Featured';
	return $sortby;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby_images_first' );
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby_images_first' );
An den Anfang scrollen