В плагине Wocommerce реализована возможность отсортировать товар Вашем магазине по желанию клиента.
В этой заметке я покажу как добавить еще один вид сортировки товара к уже установленным возможностям. А именно, мы добавим сортировку товара от самых старых (т.е. те которые были добавлены первыми) до новых.
Для реализации этой возможности в woocommerce предусмотрены 3 фильтра:
- woocommerce_get_catalog_ordering_args;
- woocommerce_default_catalog_orderby_options;
- woocommerce_catalog_orderby.
Итак, для добавления нового параметра сортировки необходимо добавить следующий код в файл functions.php:
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' ); add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' ); add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' ); // Apply custom args to main query function custom_woocommerce_get_catalog_ordering_args( $args ) { $orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ); if ( 'oldest_to_recent' == $orderby_value ) { $args['orderby'] = 'date'; $args['order'] = 'ASC'; } return $args; } // Create new sorting method function custom_woocommerce_catalog_orderby( $sortby ) { $sortby['oldest_to_recent'] = __( 'От старых к новым', 'synthetica' ); return $sortby; }
Результат работы данного кода Вы можете увидеть в панели управления.
Этот материал является переводом статьи: WooCommerce: sort products from oldest to most recent.