#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
}