You are here

public function OrderProduct::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/OrderProduct.php, line 66

Class

OrderProduct
Provides the product condition for orders.

Namespace

Drupal\commerce_product\Plugin\Commerce\Condition

Code

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

  /** @var \Drupal\commerce_order\Entity\OrderInterface $order */
  $order = $entity;
  $product_ids = $this
    ->getProductIds();
  foreach ($order
    ->getItems() as $order_item) {

    /** @var \Drupal\commerce_product\Entity\ProductVariationInterface $purchased_entity */
    $purchased_entity = $order_item
      ->getPurchasedEntity();
    if (!$purchased_entity || $purchased_entity
      ->getEntityTypeId() != 'commerce_product_variation') {
      continue;
    }
    if (in_array($purchased_entity
      ->getProductId(), $product_ids)) {
      return TRUE;
    }
  }
  return FALSE;
}