Как упорядочить категории товаров в выпадающем списке админки?

Ссылка скопирована
PHP
1 ответ

Уважаемые специалисты. Прошу помощи.

Можно ли изменить порядок категорий товаров в выпадающем списке админки?

Вот здесь: wp-admin/edit.php?post_type=product
А вот этот выпадающий список: select name="product_cat" id="product_cat" class="dropdown_product_cat"

Сейчас упорядочивается по алфавиту, а хотелось бы согласно тому порядку, как я расположил категории в админке путем их перетаскивания.

Спасибо заранее.

Дополнительно:

Как упорядочить категории товаров в выпадающем списке админки?

Плагин Category Order and Taxonomy Terms Order поможет.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Анна SEO Ответ

В админке WooCommerce выпадающий список категорий товаров обычно формируется через таксономию product_cat. Если нужно изменить порядок, сначала определитесь, какой порядок нужен: по названию, по иерархии, по пользовательскому порядку категорий WooCommerce или по ID.

Для большинства случаев достаточно изменить аргументы получения терминов только в админке и только для product_cat:

add_filter('get_terms_args', function ($args, $taxonomies) {
    if (!is_admin()) {
        return $args;
    }
 
    if (!in_array('product_cat', (array) $taxonomies, true)) {
        return $args;
    }
 
    $screen = function_exists('get_current_screen') ? get_current_screen() : null;
    if (!$screen || $screen->id !== 'edit-product') {
        return $args;
    }
 
    $args['orderby'] = 'name';
    $args['order'] = 'ASC';
 
    return $args;
}, 10, 2);

add_filter('get_terms_args', function ($args, $taxonomies) { if (!is_admin()) { return $args; } if (!in_array('product_cat', (array) $taxonomies, true)) { return $args; } $screen = function_exists('get_current_screen') ? get_current_screen() : null; if (!$screen || $screen->id !== 'edit-product') { return $args; } $args['orderby'] = 'name'; $args['order'] = 'ASC'; return $args; }, 10, 2);

Если нужен порядок как в WooCommerce “Порядок категорий”, пробуйте orderby => menu_order, но он зависит от версии WooCommerce и конкретного места вывода. Иногда удобнее не трогать глобальный get_terms_args, а заменить сам dropdown через фильтр woocommerce_product_filters.

Важный момент: не меняйте порядок терминов глобально на фронте, если задача только про админку. Иначе можно случайно поменять порядок категорий в меню, хлебных крошках, фильтрах и SEO-блоках.

Перед правкой проверьте, не решается ли задача штатной сортировкой категорий WooCommerce: Товары → Категории, затем перетаскивание категорий мышкой. Если админский фильтр всё равно показывает другой порядок, тогда уже имеет смысл вмешиваться кодом.

Если категорий много, удобнее не только сортировать, но и добавить поиск по категориям или использовать плагин для улучшенного select. Иначе даже правильный порядок не спасёт: менеджеру всё равно будет тяжело выбирать категорию из длинного списка.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно