#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. Конечно! Куда?