Спасибо, что откликнулись! Я имела в виду, как сделать изменения в php файле отвечающем за вывод одиночного товара только для определенных категорий товара или применить хук в functions.php.Если речь про выделение стилями товара определенной категории, то в карточке товара есть класс категории.
add_filter( 'woocommerce_variable_free_price_html', 'hide_free_price_notice' );
add_filter( 'woocommerce_free_price_html', 'hide_free_price_notice' );
add_filter( 'woocommerce_variation_free_price_html', 'hide_free_price_notice' );
function hide_free_price_notice( $price ) {
return '';
}
function my_woocommerce_single_product_summary() {
global $product;
// id категорий для проверки
$category_id = array(25,46);
// получаем категории товаров
$categories = get_the_terms( $product->id, 'product_cat' );
// проверяем принадлежность товара к вышеуказанным категориям по id
$product_in_category = false;
foreach ($categories as $item) {
if (in_array((int)$item->term_id, $category_id)) {
$product_in_category = true;
break;
}
}
if ($product_in_category) {
echo 'Товар входит в категории';
}
else echo 'Товар не входит в категории';
}
add_filter( 'woocommerce_single_product_summary', 'my_woocommerce_single_product_summary');
Вот общий принцип для проверки принадлежности товара к указанным категориям по id категорий в "карточке" товара.
PHP:function my_woocommerce_single_product_summary() { global $product; // id категорий для проверки $category_id = array(25,46); // получаем категории товаров $categories = get_the_terms( $product->id, 'product_cat' ); // проверяем принадлежность товара к вышеуказанным категориям по id $product_in_category = false; foreach ($categories as $item) { if (in_array((int)$item->term_id, $category_id)) { $product_in_category = true; break; } } if ($product_in_category) { echo 'Товар входит в категории'; } else echo 'Товар не входит в категории'; } add_filter( 'woocommerce_single_product_summary', 'my_woocommerce_single_product_summary');
Код используйте в любом нужном вам хуке.