Поддержка WooCommerce Сортировка по атрибуту

  • Здравствуйте, такая проблема, была задача сделать в админке при просмотре товаров сортировку по полю, создал 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 не подходит

    • Тема изменена 6 лет, 8 месяцев назад пользователем atomrus1993.
    • Тема изменена 6 лет, 8 месяцев назад пользователем atomrus1993.
Просмотр 1 ответа (всего 1)
Просмотр 1 ответа (всего 1)
  • Тема «Сортировка по атрибуту» закрыта для новых ответов.