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

Дозволяє змінити параметри сортування товарів (відсортувати товари за кастомними полями).

Використання

add_filter( 'woocommerce_get_catalog_ordering_args', 'wp_kama_woocommerce_get_catalog_ordering_args_filter', 10, 3);

/**
 * Function for `woocommerce_get_catalog_ordering_args` filter-hook.
 *
 * @param $args    
 * @param $orderby
 * @param $order   
 *
 * @return
 */
function wp_kama_woocommerce_get_catalog_ordering_args_filter( $args, $orderby, $order ){

	// Filter...
	return $args;
}
$args
(масив) (обов’язковий)

Масив параметрів. Можливі елементи:

  • orderby (Рядок)
    Поле, по якому потрібно відсортувати товари.
    Типово: date

  • order (рядок)
    Порядок сортування товарів.
    За замовчуванням: DESC

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

Приклади

0

#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;
}

Де викликається хук

woocommerce_get_catalog_ordering_args

woocommerce/includes/class-wc-query.php 622

return apply_filters( 'woocommerce_get_catalog_ordering_args', $args, $orderby, $order);

Де використовується хук у WooCommerce

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *