WooCommerce omogućuje razvrstavanje proizvoda na stranici trgovine i kategorija. Zadano razvrstavanje je po redoslijedu u izborniku (menu_order), što znači da proizvode možete razvrstati ručno na stranici pregleda svih proizvoda a ako takvo razvrstavanje nije postavljeno, proizvodi su razvrstani po abecedi.

Redoslijed proizvoda možete postaviti u administraciji, na stranici pregleda proizvoda, klikom na opciju “Sortiranje” te zatim drag’n’dropati proizvode na željenu poziciju.

Druga ugrađena opcija za razvrstavanje se nalazi u opcijama proizvoda, u tabu “Napredno”.

Promjena izvornog (default) načina sortiranja se od WooCommerce verzije 3.3.x podešava u Customizeru.

Vrijednosti koje se koriste za sortiranje su:

  • menu_order (zadano) – po ručnom redoslijedu. Ako ne postoji, po abecedi
  • popularity – po broju prodanih primjeraka
  • rating – po prosječnoj ocjeni (recenzije)
  • date – prvo se prikazuju najnoviji proizvodi
  • price – od jeftnijih prema skupljim proizvodima
  • price-desc – od skupljih prema jeftinijim proizvodima

Kad smo pokrili osnove, možemo krenuti s promjenama opcija razvrstavanja.

Uklanjanje opcije razvrstavanja

WooCommerce dodaje ovaj padajući izbornik u default predloške pomoću hook-a woocommerce_before_shop_loop s prioritetom 30.
Za uklanjanje ćemo koristiti sljedeću akciju:

 remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 ); 

Promjena default vrijednosti za razvrstavanje

Pomalo suvišno jer se isto može postići pomoću Customizera, ali evo i te opcije 😉

add_filter('woocommerce_default_catalog_orderby', 'mx_change_default_catalog_orderby');
 
function mx_change_default_catalog_orderby( $sort_by ) {
	return 'popularity';
}

Uklanjanje pojedinačnih opcija razvrstavanja

Za uklanjanje opcija ćemo koristiti hook woocommerce_catalog_orderby.

add_filter( 'woocommerce_catalog_orderby', 'mx_remove_specific_sorting_options' );
 
function mx_remove_specific_sorting_options( $options ){
 
	unset( $options[ 'popularity' ] );
	//unset( $options[ 'menu_order' ] );
	//unset( $options[ 'rating' ] );
	//unset( $options[ 'date' ] );
	//unset( $options[ 'price' ] );
	//unset( $options[ 'price-desc' ] );
 
	return $options;
 
}

Otkomentirajte (uklonite “//”) za opcije koje želite ukloniti.

Promjena naziva opcija razvrstavanja

Za promjenu naziva ćemo također koristiti hook woocommerce_catalog_orderby.

add_filter( 'woocommerce_catalog_orderby', 'mx_rename_specific_sorting_options' );
 
function mx_rename_specific_sorting_options( $options ){
 
	$options[ 'popularity' ] = 'Prvo najprodavaniji proizvodi';
	//$options[ 'menu_order' ] = 'Novi naziv';
	//$options[ 'rating' ] = 'Novi naziv'; 
	//$options[ 'date' ] = 'Novi naziv'; 
	//$options[ 'price' ] = 'Novi naziv'; 
	//$options[ 'price-desc' ] = 'Novi naziv';
 
	return $options;
 
}

Otkomentirajte (uklonite “//”) za opcije koje želite preimenovati.

Promjena redoslijeda opcija razvrstavanja

Za promjenu redoslijeda najjednostavnije je ponovno definirati cijeli array.

add_filter( 'woocommerce_catalog_orderby', 'mx_change_sorting_options_order', 5 );
 
function mx_change_sorting_options_order( $options ){
 
	$options = array(
 
		'menu_order' => __( 'Default sorting', 'woocommerce' ), // default može ostati na prvom mjestu
		'price'      => __( 'Sort by price: low to high', 'woocommerce' ), // sortiranje od niže prema višoj cijeni na drugom mjestu
		'price-desc' => __( 'Sort by price: high to low', 'woocommerce' ), // sortiranje od više prema nižoj cijeni na trećem mjestu
		
		// ostale opcije bez promjene redoslijeda
		'popularity' => __( 'Sort by popularity', 'woocommerce' ),
		'rating'     => __( 'Sort by average rating', 'woocommerce' ),
		'date'       => __( 'Sort by latest', 'woocommerce' ),
	);
 
	return $options;
 
}

Odgovori

Vaša email adresa neće biti objavljena. Obavezna polja su označena s *

Komentiraj