Promjena opcija razvrstavanja proizvoda

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.

[dt_gap height=”10″ /]

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

[dt_gap height=”10″ /]

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

[dt_gap height=”10″ /]

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.

[dt_gap height=”25″ /]

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:

[php] remove_action( ‘woocommerce_before_shop_loop’, ‘woocommerce_catalog_ordering’, 30 ); [/php]

[dt_gap height=”25″ /]

Promjena default vrijednosti za razvrstavanje

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

[php]add_filter(‘woocommerce_default_catalog_orderby’, ‘mx_change_default_catalog_orderby’);

function mx_change_default_catalog_orderby( $sort_by ) {
return ‘popularity’;
}
[/php]

[dt_gap height=”25″ /]

Uklanjanje pojedinačnih opcija razvrstavanja

Za uklanjanje opcija ćemo koristiti hook woocommerce_catalog_orderby.

[php]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;

}
[/php]

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

[dt_gap height=”25″ /]

Promjena naziva opcija razvrstavanja

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

[php]
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;

}
[/php]

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

[dt_gap height=”25″ /]

Promjena redoslijeda opcija razvrstavanja

Za promjenu redoslijeda najjednostavnije je ponovno definirati cijeli array.

[php]
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;

}
[/php]

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top