protected function ProductCategoryTrait::getReferencedIds in Commerce Core 8.2
Gets all referenced entity IDs for the given product.
This includes both taxonomy term IDs, and IDs belonging to other configurable entity reference fields. There is no filtering by target type to avoid needlessly loading all field definitions.
Parameters
\Drupal\commerce_product\Entity\ProductInterface $product: The product.
Return value
string[] The referenced entity IDs.
2 calls to ProductCategoryTrait::getReferencedIds()
- OrderItemProductCategory::evaluate in modules/
product/ src/ Plugin/ Commerce/ Condition/ OrderItemProductCategory.php - Evaluates the condition.
- OrderProductCategory::evaluate in modules/
product/ src/ Plugin/ Commerce/ Condition/ OrderProductCategory.php - Evaluates the condition.
File
- modules/
product/ src/ Plugin/ Commerce/ Condition/ ProductCategoryTrait.php, line 132
Class
- ProductCategoryTrait
- Provides common configuration for the product category conditions.
Namespace
Drupal\commerce_product\Plugin\Commerce\ConditionCode
protected function getReferencedIds(ProductInterface $product) {
$ids = [];
foreach ($this
->getEntityReferenceFieldMap() as $field_name => $field_info) {
if ($product
->hasField($field_name)) {
$field = $product
->get($field_name);
$field_definition = $field
->getFieldDefinition();
$target_type = $field_definition
->getSetting('target_type');
if ($target_type === 'taxonomy_term' && !$field
->isEmpty()) {
foreach ($field
->getValue() as $index => $field_item) {
$ids[] = $field_item['target_id'];
}
}
}
}
return $ids;
}