getSettings()['handler_settings']['target_bundles']; // example of $targetBudleConfig: ['client' => 'client', 'volunteer' => 0] foreach($targetBundleConfig as $machine_name => $value) { if ($value) { $allowedBundles[] = $machine_name; } } } return $allowedBundles; // NB. this is an array of machine names only, indexed numerically. } public static function getAllowedChildBundles($parentEntityType, $parentBundle) { $childEntityType = $parentEntityType == 'oc_case' ? 'oc_activity' : 'oc_case'; // get all the child bundles $childBundles = \Drupal::service('entity_type.bundle.info')->getBundleInfo($childEntityType); // $childBundles is array where the key is the machine name and the value is array containing label $allowedChildBundles = array(); foreach(array_keys($childBundles) as $childBundle) { if (in_array($parentBundle, self::getAllowedParentBundles($childEntityType, $childBundle))) { $allowedChildBundles[$childBundle] = $childBundles[$childBundle]['label']; } } return $allowedChildBundles; // NB. this is an array of labels, indexed by machine name. } }