Таксономии атрибутов продуктов WooCommerce больше не являются обычными таксономиями?

#php #wordpress #woocommerce #attributes #product

#php #wordpress #woocommerce #атрибуты #продукт

Вопрос:

Поскольку некоторые обновления WooCommerce, по-видимому, таксономии атрибутов продуктов WooCommerce больше не отображаются как обычные таксономии. Таблица базы данных wp_woocommerce_attribute_taxonomies содержит названия таксономий продуктов, которые также перечислены как свойства продукта.

 $attrName = 'floor';
$taxonomyName = wc_attribute_taxonomy_name( $attrName );
var_dump(taxonomy_exists( $taxonomyName ));
=> false
  

В предыдущих версиях WooCommerce это работало просто отлично, taxonomy_exists возвращалось true .
global $wp_taxonomies; Также больше не содержит атрибутов продукта WooCommerce.

Ответ №1:

Извините, но wp_woocommerce_attribute_taxonomies таблица не изменялась с момента (может быть, с версии WooCommerce 3) и не имеет никакого отношения к этой проблеме.

Похоже, что это ошибка, подобная той, которая возникает из taxonomy_exists() условной функции WordPress, так как если вы посмотрите на wp_term_taxonomy связанную таблицу, вы увидите, что таксономия pa_floor зарегистрирована, поэтому проблема возникает из WordPress.

Комментарии:

1. Только внутри init хука taxonomy_exists() функция возвращает true для этой таксономии атрибутов продуктов, в woocommerce_init и plugins_loaded хуках она всегда возвращает false . Это должно работать в woocommerce_init , верно? Похоже, это небольшая ошибка, введенная в один из недавних выпусков WooCommerce.

2. @strarsis Поскольку плагины загружаются после загрузки WordPress, я не уверен, что это происходит из WordPress или WooCommerce. Вы должны сообщить об этой проблеме в WooCommerce Github.