При использовании функции has_term()
в категории продуктов Woocommerce отсутствуют аргументы.Кроме того, поскольку вы используете ловушку действия, $badge
не требуется и не должна возвращаться, как в ловушке фильтра.Вместо этого попробуйте следующее:
add_action( 'woocommerce_after_shop_loop_item_title', 'display_lottie_new_badge', 40 );
function display_lottie_new_badge() {
global $product;
if ( has_term ( array('new'), 'product_cat', $product->get_id() ) ) {
echo '<p class="new">New</p>';
}
}
Код находится в файле function.php вашей активной дочерней темы (или активной темы).Должно работать.