woocommerce_get_catalog_ordering_args
Дозволяє змінити параметри сортування товарів (відсортувати товари за кастомними полями).
Використання
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
(Рядок)
Поле, по якому потрібно відсортувати товари.
Типово: dateorder
(рядок)
Порядок сортування товарів.
За замовчуванням: DESCmeta_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; }
Де викликається хук
woocommerce_get_catalog_ordering_args
woocommerce/includes/class-wc-query.php 622
return apply_filters( 'woocommerce_get_catalog_ordering_args', $args, $orderby, $order);
Де використовується хук у WooCommerce
Використання не знайдено.