Как массово убрать отображение атрибута для вариаций в wordpress?

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

Как массово убрать отображение атрибута для вариаций в wordpress?
У меня есть 4 атрибутов которые отображаются для выбора вариаций товара, мне надо оставить лишь один(выбор размера)

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

удалите этот атрибут

Ответы:

Простого способа скрыть часть атрибутов товара при выводе нет.
Потенциально это можно сделать так:
Данные атрибутов выводятся в шаблон через json в дата параметр формы https://i.imgur.com/WaOkItY.png,
там на их основе js рендерит поля. Вы можете изменить выводимый json убрав лишние данные.
Но могут возникнуть проблемы в других частях кода, например в корзине, т.к. при обработке будет сопоставление по всем атрибутам.
Не знаю зачем вам это, но лучшим решением будет либо полностью удалить все лишние атрибуты( вариации), либо выставить для них дефолтное значение "нет опции" и скрыть поле через css, что бы клиент не мог выбрать другое значение.

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

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

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

Если нужно массово убрать часть атрибутов из выбора вариаций WooCommerce, сначала определитесь: вы хотите скрыть их визуально или реально убрать из логики вариаций. Это разные задачи.

Если атрибут участвует в вариациях товара, просто скрыть select через CSS опасно. WooCommerce всё равно может требовать выбор этого атрибута, и пользователь не сможет добавить товар в корзину.

Правильные варианты:

  • оставить только один вариативный атрибут в настройках товара;
  • ненужные атрибуты сделать обычными характеристиками, не variation attribute;
  • пересобрать вариации товаров;
  • для массовой правки использовать импорт CSV или код.

Если товары уже созданы, можно массово обновить атрибуты через CSV WooCommerce: экспортируйте товары, измените колонки attributes/variations, импортируйте обратно. Это безопаснее, чем править сериализованные данные напрямую в базе.

Если нужно временно скрыть именно отображение характеристик на странице товара, можно убрать вывод дополнительных атрибутов:

add_filter('woocommerce_display_product_attributes', function ($attributes, $product) {
    unset($attributes['pa_color']);
    unset($attributes['pa_material']);
    return $attributes;
}, 10, 2);

add_filter('woocommerce_display_product_attributes', function ($attributes, $product) { unset($attributes['pa_color']); unset($attributes['pa_material']); return $attributes; }, 10, 2);

Но это не убирает атрибуты из формы выбора вариаций. Для формы вариаций нужно менять сами вариационные атрибуты товара.

Если требуется оставить выбор только размера, у товара в разделе “Атрибуты” только размер должен быть отмечен как “Используется для вариаций”. Остальные атрибуты можно оставить видимыми как характеристики или убрать из карточки.

Итог: не скрывайте вариационные select через CSS. Уберите ненужные атрибуты из вариаций товара массовым импортом или корректной правкой данных WooCommerce, а визуальные характеристики скрывайте отдельным фильтром.

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

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

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

комментарий

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

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