@alisa.bahringer
Чтобы создать собственную сортировку товаров в WooCommerce, вам потребуется добавить свою функцию сортировки в файл functions.php вашей активной темы или в свой дочерний теме.
Ниже приведен пример кода, который позволит вам сортировать товары по убыванию их цены:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
function custom_woocommerce_catalog_orderby( $sortby ) { $sortby['price-desc'] = 'Сортировать по цене (убывание)'; return $sortby; } add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' ); add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' ); function custom_woocommerce_get_catalog_ordering_args( $args ) { if ( isset( $_GET['orderby'] ) ) { switch( $_GET['orderby'] ) { case 'price-desc': $args['orderby'] = 'meta_value_num'; $args['order'] = 'DESC'; $args['meta_key'] = '_price'; break; } } return $args; } add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' ); |
Затем вам необходимо добавить следующий код в шаблон страницы каталога товаров (например, file.php или archive-product.php):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<form class="woocommerce-ordering" method="get"> <select name="orderby" class="orderby"> <?php $orderby_options = apply_filters( 'woocommerce_catalog_orderby', array( 'menu_order' => __( 'Default', 'woocommerce' ), 'popularity' => __( 'Popularity', 'woocommerce' ), 'rating' => __( 'Average rating', 'woocommerce' ), 'date' => __( 'Newness', 'woocommerce' ), 'price' => __( 'Price: low to high', 'woocommerce' ), 'price-desc' => __( 'Price: high to low', 'woocommerce' ) ) ); foreach ( $orderby_options as $key => $value ) { echo '<option value="' . esc_attr( $key ) . '" ' . selected( $_GET['orderby'], $key, false ) . '>' . esc_html( $value ) . '</option>'; } ?> </select> <button type="submit" class="button">Сортировать</button> <?php wc_query_string_form_fields( null, array( 'orderby', 'submit' ) ); ?> </form> |
Теперь вы сможете видеть новую сортировку товаров по цене (убывание) на странице каталога товаров в вашем магазине WooCommerce. Вы можете настроить этот код согласно своим требованиям или добавить собственные функции сортировки.