Ошибка при создании категории товаров woocommerce

#wordpress #woocommerce #hook-woocommerce

Вопрос:

Запустите wordpress локально и попробуйте создать категорию для продукта woocommerce

  $term = wp_insert_term( $_term, 'product_cat', array( 'parent' => intval( $parent ) ) );
 

Ошибка заключается в следующем

объект(WP_Error)#629 (3) { [«ошибки»]=> массив(1) { [«недопустимая таксономия»]=>> массив(1) { [0]=>>> строка(17) «Недопустимая таксономия».} } [«error_data»]=>>>> массив(0) { } [«additional_data»:защищено]=>>>>> массив(0) { } }

Ответ №1:

Это зависит от того, когда вы пытаетесь ввести термин, поскольку таксономия WooCommerce product_cat отсутствует на разных этапах процесса инициализации WP.

Пример на init крючке WordPress:

 add_action('init', function() {
  var_dump(taxonomy_exists( 'product_cat' ));
});
 
 bool(false)
 

в то время как работает то же самое, например, в woocommerce_before_main_content крючке WooCommerce:

 bool(true)
 

Самый ранний момент времени, когда ваше заявление будет работать, — это действие/хук woocommerce_after_register_taxonomy (см. Репозиторий WooCommerce на GitHub), потому что к тому времени будут созданы все основные таксономии WooCommerce.

В какой момент времени вы пытаетесь добавить этот термин в таксономию?

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

1. я хочу запустить его без действий/крючка, могу ли я это сделать ?

2. В общем: Нет, как объяснено выше. Если вы просто добавите его где-нибудь в коде, таксономии там уже не будет. В какой момент времени он вам нужен, т. е. при каких обстоятельствах он должен быть добавлен?

3. у меня есть плагин, в котором я вызываю внешний api и импортирую категории

4. мы можем быстро поговорить об этом ?

5. Конечно! Куда?