В WooCommerce я установил продукты с некоторыми атрибутами продукта, но не добавил один конкретный атрибут.
Этот:
$product->get_attribute( 'pa_material' );
работает отлично. Если у продукта есть атрибуты «материал», он показывает их, если они установлены, если нет, я получаю пустое значение, но когда я использую это:
get_the_terms($id, 'pa_material');
И в продукте нет атрибута «материал», я получаю случайные атрибуты, такие как «дерево», «сталь», «стекло».
Я проверил базу данных, и в ней нет атрибута «материал».
Это не большая проблема в моей функции, но, похоже, это проблема для WooCommerce в фильтрах на страницах архива. Когда я проверяю «дерево» в материалах, я получаю товары без атрибута «материал».
Я думаю, что это может быть связано с проблемой с функцией get_the_terms().
Я знаю об этом. Я не добавлял этот атрибут в продукт, и все же get_the_terms возвращает случайные атрибуты, но get_attribute возвращает пустое значение.






В Woocommerce если вы не добавите хотя бы один термин к данному атрибуту продукта, вы НЕ сможете установить его в продукте. Значит, в вашем вопросе потому что невозможно установить пустой атрибут продукта для продукта что-то не так, и в этом случае get_the_terms() ничего не возвращает… Я проверил это.