You are here

public function OrderItemProductCategory::evaluate in Commerce Core 8.2

Evaluates the condition.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity.

Return value

bool TRUE if the condition has been met, FALSE otherwise.

Overrides ConditionInterface::evaluate

File

modules/product/src/Plugin/Commerce/Condition/OrderItemProductCategory.php, line 70

Class

OrderItemProductCategory
Provides the product category condition for order items.

Namespace

Drupal\commerce_product\Plugin\Commerce\Condition

Code

public function evaluate(EntityInterface $entity) {
  $this
    ->assertEntity($entity);

  /** @var \Drupal\commerce_order\Entity\OrderItemInterface $order_item */
  $order_item = $entity;

  /** @var \Drupal\commerce_product\Entity\ProductVariationInterface $purchased_entity */
  $purchased_entity = $order_item
    ->getPurchasedEntity();
  if (!$purchased_entity || $purchased_entity
    ->getEntityTypeId() != 'commerce_product_variation') {
    return FALSE;
  }
  $term_ids = $this
    ->getTermIds();
  $referenced_ids = $this
    ->getReferencedIds($purchased_entity
    ->getProduct());
  return (bool) array_intersect($term_ids, $referenced_ids);
}