Проверьте категорию продукта в подключенной функции для продуктов WooCommerce

#php #wordpress #woocommerce #hook-woocommerce #taxonomy-terms

Вопрос:

Я хочу проверить категорию продуктов WooCommerce в function.php.

Это мой код:

 function for_preorder()
{
///// DISPLAY something if category id = 50 
}
add_action('woocommerce_before_single_product','for_preorder'); 
 

Как проверить категорию продукта для продукта WooCommerce?

Ответ №1:

Вы можете использовать has_term() условную функцию WordPress для проверки наличия такой категории, как:

 add_action('woocommerce_before_single_product','for_preorder'); 
function for_preorder() {
    global $product;

    $categories = array( 50 ); // Here define your categories term Ids, slugs or names

    if ( has_term( $categories, 'product_cat', $product->get_id() ) ) {
        echo '<p>' . __("DISPLAY something here") . '</p>';
    }
}
 

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

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

1. Я использую get_the_terms(get_the_id(),’product_cat’); , я надеюсь, что они похожи. В любом случае, спасибо

2. @AmericanJewelry get_the_terms() тяжелее и сложнее в обращении, но тоже должен работать.

Ответ №2:

 if( has_term( 50, 'product_cat' ) ) {
 // do something if current product in the loop is in product category with ID 50
}
 

Или, если вы передадите идентификатор продукта в for_preorder() функции, вы можете сделать:

 if( has_term( 50, 'product_tag', 971 ) ) {
    // do something if product with ID = 971 has tag with ID = 50
}