woocommerce_default_catalog_orderby_optionsхук-фильтрWC 1.0

Позволяет изменить варианты сортировки в настройках каталога товаров.

Использование

add_filter( 'woocommerce_default_catalog_orderby_options', 'wp_kama_woocommerce_default_catalog_orderby_options_filter' );

/**
 * Function for `woocommerce_default_catalog_orderby_options` filter-hook.
 * 
 * @param string $value An array key from the below array.
 *
 * @return string
 */
function wp_kama_woocommerce_default_catalog_orderby_options_filter( $value ){

	// filter...
	return $value;
}
$value(массив)
Массив параметров сортировки.

Примеры

0

#1 Удалим из настроек сортировку по рейтингу

add_filter( 'woocommerce_default_catalog_orderby_options', 'remove_default_sort_by_rating' );

function remove_default_sort_by_rating( $array ){
	unset( $array['rating'] );

	return $array;
}
0

#2 Добавим в настройки кастомный вариант сортировки

C полным примером добавления сортировки по кастомному полю можно ознакомится перейдя по ссылке

add_filter( 'woocommerce_default_catalog_orderby_options', 'add_sorting_by_sale' );

function add_sorting_by_sale( $array ){
	$array['sale'] = __( 'Sale', 'woocommerce' );

	return $array;
}

Где вызывается хук

WC_Shop_Customizer::sanitize_default_catalog_orderby()
woocommerce_default_catalog_orderby_options
WC_Shop_Customizer::add_product_catalog_section()
woocommerce_default_catalog_orderby_options
woocommerce/includes/customizer/class-wc-shop-customizer.php 273-283
$options = apply_filters(
	'woocommerce_default_catalog_orderby_options',
	array(
		'menu_order' => __( 'Default sorting (custom ordering + name)', 'woocommerce' ),
		'popularity' => __( 'Popularity (sales)', 'woocommerce' ),
		'rating'     => __( 'Average rating', 'woocommerce' ),
		'date'       => __( 'Sort by most recent', 'woocommerce' ),
		'price'      => __( 'Sort by price (asc)', 'woocommerce' ),
		'price-desc' => __( 'Sort by price (desc)', 'woocommerce' ),
	)
);
woocommerce/includes/customizer/class-wc-shop-customizer.php 443-453
'choices'     => apply_filters(
	'woocommerce_default_catalog_orderby_options',
	array(
		'menu_order' => __( 'Default sorting (custom ordering + name)', 'woocommerce' ),
		'popularity' => __( 'Popularity (sales)', 'woocommerce' ),
		'rating'     => __( 'Average rating', 'woocommerce' ),
		'date'       => __( 'Sort by most recent', 'woocommerce' ),
		'price'      => __( 'Sort by price (asc)', 'woocommerce' ),
		'price-desc' => __( 'Sort by price (desc)', 'woocommerce' ),
	)
),

Где используется хук в WooCommerce

Использование не найдено.