Проверьте категорию продукта для продукта в Woocommerce - PullRequest
0 голосов
/ 28 января 2019

Я хочу проверить категорию сообщения о продукте WooCommerce сразу после его создания (или обновления), а затем запустить еще один код, основанный на категории.

Чтобы проверить сообщение о создании / обновлении, я использовал save_post и для категории has_category.Что-то идет не так с has_category и ничего не возвращает вообще.Я попытался заменить $post_id на $post и $post->ID, как предлагалось в других вопросах, но это ничего не изменило.

function doFruitStuff($post_id){ // Function in functions.php
    $fruits = 'fruits';
    if(has_category($fruits, $post_id)){
    echo "<script type='text/javascript'>alert('has the category');</script>";
}else{
    echo "<script type='text/javascript'>alert('doesnt have the category');</script>";
}}
add_action('save_post', 'doFruitStuff');

Я неправильно использую has_category или категории продуктов WooCommerce работают по-другому?

Я привык к отладке в предупреждениях JavaScript, извините за это.Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 28 января 2019

Вы не можете использовать has_category() функцию Wordpress для проверки категорий продуктов Woocommerce .

Примечание. Категория продукта - это пользовательская таксономия, используемая Woocommerce.

Таким образом, вместо этого вам нужно будет использовать has_term() с категориями продуктов Woocommerce следующим образом:

add_action('save_post', 'do_fruit_stuff');
function do_fruit_stuff( $post_id ){
    $terms = array('fruits');
    if( has_term( $terms, 'product_cat', $post_id ) ){
        echo "<script type='text/javascript'>alert('has the product category');</script>";
    }else{
        echo "<script type='text/javascript'>alert('doesnt have the product category');</script>";
    }
}

Код входит в файл function.phpвашей активной детской темы (или активной темы).Протестировано и работает.

Примечание. Пользовательская таксономия, используемая для категорий продуктов Woocommerce: "product_cat".


Связанные темы:

...