woocommerce_catalog_orderby
Позволяет изменить варианты сортировки товаров на страницах магазина.
Использование
add_filter( 'woocommerce_catalog_orderby', 'wp_kama_woocommerce_catalog_orderby_filter' ); /** * Function for `woocommerce_catalog_orderby` filter-hook. * * @param $array * * @return */ function wp_kama_woocommerce_catalog_orderby_filter( $array ){ // filter... return $array; }
- $array(массив) (обязательный)
Массив вариантов сортировки. Варианты сортировки по умолчанию:
array( 'menu_order' => __( 'Default sorting', 'woocommerce' ), 'popularity' => __( 'Sort by popularity', 'woocommerce' ), 'rating' => __( 'Sort by average rating', 'woocommerce' ), 'date' => __( 'Sort by latest', 'woocommerce' ), 'price' => __( 'Sort by price: low to high', 'woocommerce' ), 'price-desc' => __( 'Sort by price: high to low', 'woocommerce' ), )
Примеры
#1 Удалим сортировку по дате
add_filter( 'woocommerce_catalog_orderby', 'remove_default_sort_by_date' ); function remove_default_sort_by_date( $array ){ unset( $array['date'] ); return $array; }
#2 Добавим свой вариант сортировки
add_filter( 'woocommerce_catalog_orderby', 'add_sorting_by_random' ); function add_sorting_by_random( $array ){ $array['random'] = __( 'Random', 'woocommerce' ); return $array; }
C полным примером добавления сортировки по кастомному полю можно ознакомится перейдя по этой ссылке.
Где вызывается хук
woocommerce_catalog_orderby
woocommerce/includes/wc-template-functions.php 1488-1498
$catalog_orderby_options = apply_filters( 'woocommerce_catalog_orderby', array( 'menu_order' => __( 'Default sorting', 'woocommerce' ), 'popularity' => __( 'Sort by popularity', 'woocommerce' ), 'rating' => __( 'Sort by average rating', 'woocommerce' ), 'date' => __( 'Sort by latest', 'woocommerce' ), 'price' => __( 'Sort by price: low to high', 'woocommerce' ), 'price-desc' => __( 'Sort by price: high to low', 'woocommerce' ), ) );