You are here

protected function ProductCategoryTrait::getVocabularyIds in Commerce Core 8.2

Gets the vocabulary IDs used by products.

Return value

string[] The vocabulary IDs.

1 call to ProductCategoryTrait::getVocabularyIds()
ProductCategoryTrait::buildConfigurationForm in modules/product/src/Plugin/Commerce/Condition/ProductCategoryTrait.php

File

modules/product/src/Plugin/Commerce/Condition/ProductCategoryTrait.php, line 100

Class

ProductCategoryTrait
Provides common configuration for the product category conditions.

Namespace

Drupal\commerce_product\Plugin\Commerce\Condition

Code

protected function getVocabularyIds() {
  $vocabulary_ids = [];
  foreach ($this
    ->getEntityReferenceFieldMap() as $field_name => $field_info) {
    foreach ($field_info['bundles'] as $bundle) {
      $field_definitions = $this->entityFieldManager
        ->getFieldDefinitions('commerce_product', $bundle);
      $field_definition = $field_definitions[$field_name];
      if ($field_definition
        ->getSetting('target_type') == 'taxonomy_term') {
        $target_bundles = $field_definition
          ->getSetting('handler_settings')['target_bundles'];
        if (!empty($target_bundles)) {
          $vocabulary_ids = array_merge($vocabulary_ids, $target_bundles);
        }
      }
    }
  }
  $vocabulary_ids = array_unique($vocabulary_ids);
  return $vocabulary_ids;
}