Сортировка по атрибуту
-
Здравствуйте, такая проблема, была задача сделать в админке при просмотре товаров сортировку по полю, создал sort_user поле в атрибутах (товары), добавил столбец и вывожу данные, проблем нет.
/////////////// поле с menu_order в WooCommerce admin /////////// /** * Создаем колонку */ function change_columns_filter( $columns ) { $columns['sort_user'] = 'Сорт.'; return $columns; } add_filter( 'manage_edit-product_columns', 'change_columns_filter',10, 1 ); /** * Заполняем колонку */ function getMenuOrder($column) { global $post; global $product; global $wp_query; switch ( $column ) { case 'sort_user': echo $product->get_attribute('sort_user'); break; } } add_action( 'manage_product_posts_custom_column', 'getMenuOrder', 10, 1 );
делаю сортировку
add_filter( 'manage_edit-product_sortable_columns', 'true_sort_menu_order' ); // manage_edit-{тип поста}_sortable_columns add_action( 'pre_get_posts', 'true_orderby_menu_order' ); function true_sort_menu_order( $columns ) { $columns['sort_user'] = 'sort_user'; // $columns['ID колонки'] = 'Значение параметра orderby' //Кстати, здесь вы также можете сделать любую колонку несортируемой, просто удалите её из массива //unset($columns['date']); return $columns; } function true_orderby_menu_order( $query ) { // так как сортировка будет осуществляться только в админке if( ! is_admin() ) return; $orderby = $query->get('orderby'); if( 'sort_user' == $orderby ) { // 'views' - параметр в GET-запросе <strong>$query->set('meta_key', 'sort_user'); //</strong> } }
Как сделать сортировку в админке по этому полю?
Или есть альтернативное решение?
Задача была такая, чтобы пользователь мог самостоятельно двигать товары на первом место при просмотре в каталоге и после этих товаров выводились к примеру популярные или по рейтингу
true_orderby_menu_order
Это не работаетхранить значения порядка в menu_order не подходит
Просмотр 1 ответа (всего 1)
Просмотр 1 ответа (всего 1)
- Тема «Сортировка по атрибуту» закрыта для новых ответов.