woocommerce_catalog_orderby
Позволяет изменить варианты сортировки товаров на страницах магазина.
Использование
add_filter( 'woocommerce_catalog_orderby', 'wp_kama_woocommerce_catalog_orderby_filter' );
/**
* Function for `woocommerce_catalog_orderby` filter-hook.
*
* @param array $catalog_orderby_options Array of catalog orderby options.
*
* @return array
*/
function wp_kama_woocommerce_catalog_orderby_filter( $catalog_orderby_options ){
// filter...
return $catalog_orderby_options;
}
- $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 полным примером добавления сортировки по кастомному полю можно ознакомится перейдя по этой ссылке.
Список изменений
| С версии 9.7.0 | Введена. |
Где вызывается хук
woocommerce_catalog_orderby
woocommerce/includes/wc-template-functions.php 1621-1631
$catalog_orderby_options = apply_filters( 'woocommerce_catalog_orderby', array( 'menu_order' => __( 'Default', 'woocommerce' ), 'popularity' => __( 'Popularity', 'woocommerce' ), 'rating' => __( 'Average rating', 'woocommerce' ), 'date' => __( 'Latest', 'woocommerce' ), 'price' => __( 'Price: low to high', 'woocommerce' ), 'price-desc' => __( 'Price: high to low', 'woocommerce' ), ) );
woocommerce/includes/wc-template-functions.php 1634-1644
$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' ), ) );
