WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Купить персональные IPV4 и IPV6 прокси

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

Позволяет изменить параметры сортировки товаров (отсортировать товары по кастомным полям).

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

add_filter( 'woocommerce_get_catalog_ordering_args', 'filter_function_name_6896', 10, 3 );
function filter_function_name_6896( $args, $orderby, $order ){
	// filter...

	return $args;
}
$args(массив) (обязательный)

Массив параметров. Возможные элементы:

  • orderby (строка)
    Поле по котором нужно отсортировать товары.
    По умолчанию: date

  • order (строка)
    Порядок сортировки товаров.
    По умолчанию: DESC

  • meta_key (строка)
    Ключ по значениям которого нужно отсортировать.
    По умолчанию: пустая строка
$orderby(строка)
Поле по которому нужно отсортировать товары.
$order(строка)
Порядок сортировки товаров.

Примеры

#1 Добавим новое поле для сортировки товаров по скидке

add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );

function custom_woocommerce_get_catalog_ordering_args( $args ) {

	$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : 
		apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );

	if ( 'sale' == $orderby_value ) {
		$args = [
			'orderby'  => 'meta_value_num',
			'meta_key' => '_sale_price',
			'order'    => 'DESC',
		];
	}

	return $args;
}

// Добавим возможность выбора сортировки в настройках каталога woocommerce 
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );

// Выведем сортировку на страницах магазина
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );

function custom_woocommerce_catalog_orderby( $sortby ) {
	$sortby['sale'] = __( 'By sale', 'woocommerce' );

	return $sortby;
}

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

WC_Query::get_catalog_ordering_args()
woocommerce_get_catalog_ordering_args
woocommerce/includes/class-wc-query.php 509
return apply_filters( 'woocommerce_get_catalog_ordering_args', $args, $orderby, $order );

Где используется хук (в ядре WC)

Использование не найдено.
Glum 570
Редакторы: Kama 7538
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться