Почему используется has_term, он же ищет метки и теги в публикациях но не в объекте в корзине. Внутри цикла скорее всего придётся делать ещё цикл что бы разобрать объект товара, можете посмотреть что вы получаете в самом цикле? Добавьте принт в цикл
print_r($cart_item['product_id']);