@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. Вы можете настроить этот код согласно своим требованиям или добавить собственные функции сортировки.